Groups keyboard shortcuts have been updated
Dismiss
See shortcuts

Help setting up oversip as a SIP proxy

102 views
Skip to first unread message

Alex Megalokonomos

unread,
Jun 27, 2017, 6:24:48 AM6/27/17
to OverSIP
Hello, I am trying to set up OverSIP as a SIP proxy in our internal call center.

We are currently using Alcatel's OmniPCX Office system. 

This allows extensions to be configured either as alcatel's system client phones or SIP phones.

Unfortunately OmniPCX does not do SIP over websockets (although internally it seems to use Kamailio but ws support is probably not configured).

Since we are trying to integrate certain extensions for customer support with our custom CRM system, we are trying to implement SIP over WS so we can log call times , automatically log customer calls , open issues etc through our CRM web app

We are not very familiar with SIP systems so we would like some help on how to configure OverSIP to handle such a scenario.

At the moment, we've managed to get a WebRTC client (using SIP js) to register as the correct extension through OverSIP and it can also initiate outgoing calls where we get the number dialled to ring. However when answered, the connection is never completed.

At the same time incoming calls never reach the webrtc client.

We are trying to debug the issues but as a start it would be great to have some help on setting up oversip.conf/proxies.conf and server.rb

Best regards




Iñaki Baz Castillo

unread,
Jun 27, 2017, 6:37:12 AM6/27/17
to ove...@googlegroups.com
2017-06-27 12:24 GMT+02:00 Alex Megalokonomos <al...@clockwork.gr>:
> We are not very familiar with SIP systems so we would like some help on how
> to configure OverSIP to handle such a scenario.

I'm afraid I cannot provide such a help currently. I hope others in
this mailing list can help you.


--
Iñaki Baz Castillo
<i...@aliax.net>

Alex Megalokonomos

unread,
Jun 27, 2017, 7:15:10 AM6/27/17
to OverSIP
That's understandable. However , maybe you could provide some insights into our debugging?

The reason we cannot complete an outgoing call is that the webRTC client responds with 488 Not Acceptable Here when the called party picks up. The JS error prior to this is

"Failed to set remote offer sdp: Called with SDP without DTLS fingerprint."

OverSIP logs are as follows (I have included raw requests) (call intiation, ringing, pick up, caller bye)

Jun 27 14:05:02 redash oversip[29863]:  DEBUG: <SIP Request 6690519> applying outgoing Outbound support
Jun 27 14:05:02 redash oversip[29863]:  DEBUG: <UserAssertion module> user asserted, adding P-Asserted-Identity for SIP Request 6690519
Jun 27 14:05:02 redash oversip[29863]:  DEBUG: <SIP Request 6690519> replying 100 "Trying"
Jun 27 14:05:02 redash oversip[29863]:  DEBUG: <WsFraming> sending text frame: payload_length=253
Jun 27 14:05:02 redash oversip[29863]:  DEBUG: <Proxy proxy_out 6690519> trying single target: udp:10.0.1.200:5059
Jun 27 14:05:03 redash oversip[29863]:  DEBUG: <Proxy proxy_out 6690519> received response 180
Jun 27 14:05:03 redash oversip[29863]:   INFO: <SipEvents> [user] on_provisional_response: 180 'Ringing'
Jun 27 14:05:03 redash oversip[29863]:  DEBUG: <SIP Request 6690519> forwarding response 180 "Ringing"
Jun 27 14:05:03 redash oversip[29863]:  DEBUG: <WsFraming> sending text frame: payload_length=649
Jun 27 14:05:03 redash oversip[29863]:  DEBUG: <NICT 04d7d04be89c985a2569c9dd39b8047abf76fad3> timer K expires, transaction terminated
Jun 27 14:05:07 redash oversip[29863]:  DEBUG: <Proxy proxy_out 6690519> received response 200
Jun 27 14:05:07 redash oversip[29863]:   INFO: <SipEvents> [user] on_success_response: 200 'OK'
Jun 27 14:05:07 redash oversip[29863]:  DEBUG: <SIP Request 6690519> forwarding response 200 "OK"
Jun 27 14:05:07 redash oversip[29863]:  DEBUG: <WsFraming> sending text frame: payload_length=1147
Jun 27 14:05:07 redash oversip[29863]:  DEBUG: <WsFraming> received text frame: FIN=true, RSV1-3=false/false/false, payload_length=529
Jun 27 14:05:07 redash oversip[29863]:  DEBUG: <WsSipApp> received WS message: type=text, length=529
Jun 27 14:05:07 redash oversip[29863]:  DEBUG: <WsSipApp> passing ACK to the core
Jun 27 14:05:07 redash oversip[29863]:   INFO: <SipEvents> [user] ACK from sip:6...@10.0.1.200:5059 (UA: SIP.js/0.7.8) to sip:6...@10.0.1.200:5080 via WS 10.0.1.171 : 62523
Jun 27 14:05:07 redash oversip[29863]:  DEBUG: <SipEvents> [user] #<OverSIP::SIP::Request:0x000000024b1408 @headers={"Route"=>["<sip:346a8...@10.0.1.63:10080;transport=ws;lr;ovid=bf81c60c>", "<sip:10.0.1.63:5060;transport=udp;lr;ovid=bf81c60c>", "<sip:10.0.1.200:5059;ftag=ksbkdnkaeo;lr=on>"], "Via"=>["SIP/2.0/WS 8uieghh3i0n7.invalid;branch=z9hG4bK6162331"], "Max-Forwards"=>["70"], "To"=>["<sip:6...@10.0.1.200:5059>;tag=b933c55953ee0c9c05cf19054bcb4ea4"], "From"=>["<sip:6...@10.0.1.200:5059>;tag=ksbkdnkaeo"], "Call-ID"=>["ee25bf5u7ljpqjk3bsq5"], "CSeq"=>["4751 ACK"], "Supported"=>["outbound"], "User-Agent"=>["SIP.js/0.7.8"], "Content-Length"=>["0"]}, @sip_method=:ACK, @ruri=sip:6...@10.0.1.200:5080, @sip_version="SIP/2.0", @via_sent_by_host="8uieghh3i0n7.invalid", @via_core_value="SIP/2.0/WS 8uieghh3i0n7.invalid", @via_branch_rfc3261=true, @via_branch="z9hG4bK6162331", @hdr_via=["SIP/2.0/WS 8uieghh3i0n7.invalid;branch=z9hG4bK6162331"], @max_forwards=70, @to=<sip:6...@10.0.1.200:5059>, @hdr_to="<sip:6...@10.0.1.200:5059>;tag=b933c55953ee0c9c05cf19054bcb4ea4", @from=<sip:6...@10.0.1.200:5059>, @from_tag="ksbkdnkaeo", @hdr_from="<sip:6...@10.0.1.200:5059>;tag=ksbkdnkaeo", @call_id="ee25bf5u7ljpqjk3bsq5", @cseq=4751, @contact=nil, @supported=["outbound"], @content_length=0, @connection=#<OverSIP::WebSocket::IPv4WsServer:0x0000000229b7e0 @signature=8, @buffer=#<IO::Buffer:0x0000000229b6a0>, @state=:websocket, @cvars={:asserted_user=>"sip:6...@10.0.1.200:5059"}, @remote_port=62523, @remote_ip="10.0.1.171", @connection_id="10.0.1.171_62523", @outbound_flow_token="346a87b193", @remote_desc="10.0.1.171:62523", @http_parser=#<OverSIP::WebSocket::HttpRequestParser:0x0000000229a7a0>, @http_request={"Host"=>["10.0.1.63:10080"], "Connection"=>["Upgrade"], "Pragma"=>["no-cache"], "Cache-Control"=>["no-cache"], "Upgrade"=>["websocket"], "Origin"=>["http://localhost:8088"], "Sec-Websocket-Version"=>["13"], "User-Agent"=>["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"], "Accept-Encoding"=>["gzip, deflate, sdch"], "Accept-Language"=>["en-US,en;q=0.8,el;q=0.6"], "Sec-Websocket-Key"=>["43Bsj+ip93Qxc00LL+x5Eg=="], "Sec-Websocket-Extensions"=>["permessage-deflate; client_max_window_bits"], "Sec-Websocket-Protocol"=>["sip"]}, @http_parser_nbytes=536, @bytes_remaining=0, @websocket_protocol_negotiated=true, @ws_framing=#<OverSIP::WebSocket::WsFraming:0x0000000229f688 @connection=#<OverSIP::WebSocket::IPv4WsServer:0x0000000229b7e0 ...>, @buffer=#<IO::Buffer:0x0000000229b6a0>, @utf8_validator=#<OverSIP::WebSocket::FramingUtils::Utf8Validator:0x0000000229f548>, @state=:init, @keep_alive_timer=#<EventMachine::PeriodicTimer:0x0000000229f368 @interval=300, @code=#<Proc:0x0000000229f250@/var/lib/gems/2.0.0/gems/oversip-2.0.4/lib/oversip/websocket/ws_framing.rb:46>, @cancelled=false, @work=#<Method: EventMachine::PeriodicTimer#fire>>, @ws_app=#<OverSIP::WebSocket::WsSipApp:0x0000000229f430 @connection=#<OverSIP::WebSocket::IPv4WsServer:0x0000000229b7e0 ...>, @ws_framing=#<OverSIP::WebSocket::WsFraming:0x0000000229f688 ...>, @ws_message=#<IO::Buffer:0x0000000229f3b8>, @parser=#<OverSIP::SIP::MessageParser:0x0000000229f1b0 @parsed=#<OverSIP::SIP::Request:0x000000024b1408 ...>>, @msg=#<OverSIP::SIP::Request:0x000000024b1408 ...>>, @fin=true, @rsv1=false, @rsv2=false, @rsv3=false, @opcode=1, @sym_opcode=:text, @mask=true, @payload="ACK sip:6...@10.0.1.200:5080 SIP/2.0\r\nRoute: <sip:346a8...@10.0.1.63:10080;transport=ws;lr;ovid=bf81c60c>\r\nRoute: <sip:10.0.1.63:5060;transport=udp;lr;ovid=bf81c60c>\r\nRoute: <sip:10.0.1.200:5059;ftag=ksbkdnkaeo;lr=on>\r\nVia: SIP/2.0/WS 8uieghh3i0n7.invalid;branch=z9hG4bK6162331\r\nMax-Forwards: 70\r\nTo: <sip:6...@10.0.1.200:5059>;tag=b933c55953ee0c9c05cf19054bcb4ea4\r\nFrom: <sip:6...@10.0.1.200:5059>;tag=ksbkdnkaeo\r\nCall-ID: ee25bf5u7ljpqjk3bsq5\r\nCSeq: 4751 ACK\r\nSupported: outbound\r\nUser-Agent: SIP.js/0.7.8\r\nContent-Length: 0\r\n\r\n", @payload_length=529, @masking_key="\x9B\xE6\xDA\v", @msg_sym_opcode=:text>, @ws_established=true>, @transport=:ws, @source_ip="10.0.1.171", @source_port=62523, @source_ip_type=:ipv4, @num_vias=1, @via_branch_id="6162331", @antiloop_id="b18d9a1a551bad116ab993e4083f39a5", @tvars={}, @cvars={:asserted_user=>"sip:6...@10.0.1.200:5059"}, @routes=[<sip:346a8...@10.0.1.63:10080;transport=ws;lr;ovid=bf81c60c>, <sip:10.0.1.63:5060;transport=udp;lr;ovid=bf81c60c>, <sip:10.0.1.200:5059;ftag=ksbkdnkaeo;lr=on>], @hdr_route=["<sip:346a8...@10.0.1.63:10080;transport=ws;lr;ovid=bf81c60c>", "<sip:10.0.1.63:5060;transport=udp;lr;ovid=bf81c60c>", "<sip:10.0.1.200:5059;ftag=ksbkdnkaeo;lr=on>"], @to_tag="b933c55953ee0c9c05cf19054bcb4ea4">
Jun 27 14:05:07 redash oversip[29863]:  DEBUG: <SipEvents> [user] proxying in-dialog ACK
Jun 27 14:05:07 redash oversip[29863]:  DEBUG: <Proxy proxy_in_dialog 6162331> trying single target: udp:10.0.1.200:5059
Jun 27 14:05:07 redash oversip[29863]:  DEBUG: <WsFraming> received text frame: FIN=true, RSV1-3=false/false/false, payload_length=581
Jun 27 14:05:07 redash oversip[29863]:  DEBUG: <WsSipApp> received WS message: type=text, length=581
Jun 27 14:05:07 redash oversip[29863]:   INFO: <SipEvents> [user] BYE from sip:6...@10.0.1.200:5059 (UA: SIP.js/0.7.8) to sip:6...@10.0.1.200:5080 via WS 10.0.1.171 : 62523
Jun 27 14:05:07 redash oversip[29863]:  DEBUG: <SipEvents> [user] #<OverSIP::SIP::Request:0x000000024c3dd8 @headers={"Route"=>["<sip:346a8...@10.0.1.63:10080;transport=ws;lr;ovid=bf81c60c>", "<sip:10.0.1.63:5060;transport=udp;lr;ovid=bf81c60c>", "<sip:10.0.1.200:5059;ftag=ksbkdnkaeo;lr=on>"], "Via"=>["SIP/2.0/WS 8uieghh3i0n7.invalid;branch=z9hG4bK3339976"], "Max-Forwards"=>["70"], "To"=>["<sip:6...@10.0.1.200:5059>;tag=b933c55953ee0c9c05cf19054bcb4ea4"], "From"=>["<sip:6...@10.0.1.200:5059>;tag=ksbkdnkaeo"], "Call-ID"=>["ee25bf5u7ljpqjk3bsq5"], "CSeq"=>["4752 BYE"], "Reason"=>["SIP ;cause=488 ;text=\"Not Acceptable Here\""], "Supported"=>["outbound"], "User-Agent"=>["SIP.js/0.7.8"], "Content-Length"=>["0"]}, @sip_method=:BYE, @ruri=sip:6...@10.0.1.200:5080, @sip_version="SIP/2.0", @via_sent_by_host="8uieghh3i0n7.invalid", @via_core_value="SIP/2.0/WS 8uieghh3i0n7.invalid", @via_branch_rfc3261=true, @via_branch="z9hG4bK3339976", @hdr_via=["SIP/2.0/WS 8uieghh3i0n7.invalid;branch=z9hG4bK3339976"], @max_forwards=70, @to=<sip:6...@10.0.1.200:5059>, @hdr_to="<sip:6...@10.0.1.200:5059>;tag=b933c55953ee0c9c05cf19054bcb4ea4", @from=<sip:6...@10.0.1.200:5059>, @from_tag="ksbkdnkaeo", @hdr_from="<sip:6...@10.0.1.200:5059>;tag=ksbkdnkaeo", @call_id="ee25bf5u7ljpqjk3bsq5", @cseq=4752, @contact=nil, @supported=["outbound"], @content_length=0, @connection=#<OverSIP::WebSocket::IPv4WsServer:0x0000000229b7e0 @signature=8, @buffer=#<IO::Buffer:0x0000000229b6a0>, @state=:websocket, @cvars={:asserted_user=>"sip:6...@10.0.1.200:5059"}, @remote_port=62523, @remote_ip="10.0.1.171", @connection_id="10.0.1.171_62523", @outbound_flow_token="346a87b193", @remote_desc="10.0.1.171:62523", @http_parser=#<OverSIP::WebSocket::HttpRequestParser:0x0000000229a7a0>, @http_request={"Host"=>["10.0.1.63:10080"], "Connection"=>["Upgrade"], "Pragma"=>["no-cache"], "Cache-Control"=>["no-cache"], "Upgrade"=>["websocket"], "Origin"=>["http://localhost:8088"], "Sec-Websocket-Version"=>["13"], "User-Agent"=>["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"], "Accept-Encoding"=>["gzip, deflate, sdch"], "Accept-Language"=>["en-US,en;q=0.8,el;q=0.6"], "Sec-Websocket-Key"=>["43Bsj+ip93Qxc00LL+x5Eg=="], "Sec-Websocket-Extensions"=>["permessage-deflate; client_max_window_bits"], "Sec-Websocket-Protocol"=>["sip"]}, @http_parser_nbytes=536, @bytes_remaining=0, @websocket_protocol_negotiated=true, @ws_framing=#<OverSIP::WebSocket::WsFraming:0x0000000229f688 @connection=#<OverSIP::WebSocket::IPv4WsServer:0x0000000229b7e0 ...>, @buffer=#<IO::Buffer:0x0000000229b6a0>, @utf8_validator=#<OverSIP::WebSocket::FramingUtils::Utf8Validator:0x0000000229f548>, @state=:init, @keep_alive_timer=#<EventMachine::PeriodicTimer:0x0000000229f368 @interval=300, @code=#<Proc:0x0000000229f250@/var/lib/gems/2.0.0/gems/oversip-2.0.4/lib/oversip/websocket/ws_framing.rb:46>, @cancelled=false, @work=#<Method: EventMachine::PeriodicTimer#fire>>, @ws_app=#<OverSIP::WebSocket::WsSipApp:0x0000000229f430 @connection=#<OverSIP::WebSocket::IPv4WsServer:0x0000000229b7e0 ...>, @ws_framing=#<OverSIP::WebSocket::WsFraming:0x0000000229f688 ...>, @ws_message=#<IO::Buffer:0x0000000229f3b8>, @parser=#<OverSIP::SIP::MessageParser:0x0000000229f1b0 @parsed=#<OverSIP::SIP::Request:0x000000024c3dd8 ...>>, @msg=#<OverSIP::SIP::Request:0x000000024c3dd8 ...>>, @fin=true, @rsv1=false, @rsv2=false, @rsv3=false, @opcode=1, @sym_opcode=:text, @mask=true, @payload="BYE sip:6...@10.0.1.200:5080 SIP/2.0\r\nRoute: <sip:346a8...@10.0.1.63:10080;transport=ws;lr;ovid=bf81c60c>\r\nRoute: <sip:10.0.1.63:5060;transport=udp;lr;ovid=bf81c60c>\r\nRoute: <sip:10.0.1.200:5059;ftag=ksbkdnkaeo;lr=on>\r\nVia: SIP/2.0/WS 8uieghh3i0n7.invalid;branch=z9hG4bK3339976\r\nMax-Forwards: 70\r\nTo: <sip:6...@10.0.1.200:5059>;tag=b933c55953ee0c9c05cf19054bcb4ea4\r\nFrom: <sip:6...@10.0.1.200:5059>;tag=ksbkdnkaeo\r\nCall-ID: ee25bf5u7ljpqjk3bsq5\r\nCSeq: 4752 BYE\r\nReason: SIP ;cause=488 ;text=\"Not Acceptable Here\"\r\nSupported: outbound\r\nUser-Agent: SIP.js/0.7.8\r\nContent-Length: 0\r\n\r\n", @payload_length=581, @masking_key="`\xB4E\xD1", @msg_sym_opcode=:text>, @ws_established=true>, @transport=:ws, @source_ip="10.0.1.171", @source_port=62523, @source_ip_type=:ipv4, @num_vias=1, @via_branch_id="3339976", @antiloop_id="b18d9a1a551bad116ab993e4083f39a5", @tvars={}, @cvars={:asserted_user=>"sip:6...@10.0.1.200:5059"}, @routes=[<sip:346a8...@10.0.1.63:10080;transport=ws;lr;ovid=bf81c60c>, <sip:10.0.1.63:5060;transport=udp;lr;ovid=bf81c60c>, <sip:10.0.1.200:5059;ftag=ksbkdnkaeo;lr=on>], @hdr_route=["<sip:346a8...@10.0.1.63:10080;transport=ws;lr;ovid=bf81c60c>", "<sip:10.0.1.63:5060;transport=udp;lr;ovid=bf81c60c>", "<sip:10.0.1.200:5059;ftag=ksbkdnkaeo;lr=on>"], @to_tag="b933c55953ee0c9c05cf19054bcb4ea4">

Iñaki Baz Castillo

unread,
Jun 27, 2017, 7:18:03 AM6/27/17
to ove...@googlegroups.com
2017-06-27 13:15 GMT+02:00 Alex Megalokonomos <al...@clockwork.gr>:
> The reason we cannot complete an outgoing call is that the webRTC client
> responds with 488 Not Acceptable Here when the called party picks up. The JS
> error prior to this is
>
> "Failed to set remote offer sdp: Called with SDP without DTLS fingerprint."

If your SIP server (the one OverSIP routes the call from the browser
to) does not support WebRTC (ICE+DTLS+SRTP, etc) there is absolutely
nothing to do. OverSIP is not a WebRTC<->SIP media gateway.
Reply all
Reply to author
Forward
0 new messages