Git Product home page Git Product logo

oversip's People

Contributors

domq avatar ibc avatar kamronbatman avatar roramirez avatar semenyukdmitry avatar sodabrew avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

oversip's Issues

TLS causing crash

I'm trying to enable both WSS and SIP TLS on OverSIP, and it just crashes right away with no real information:

Aug 6 18:16:21 oversip-chi-02 oversip[10051]: CRIT: master process died, syslogger process terminated

OS: Ubuntu 12.04.2 LTS

I have enabled syslog_level: debug, but still not much information provided regarding the reason for the crash.

I installed using the documented method from package. The crash occurs right away on the connection, before a call even happens. Also, if I disable WSS, and enable TLS on the outbound SIP side, it accepts a call, then crashes.

Thoughts?

FreeBSD - no logging

Installed oversip 1.3.7 on FreeBSD 9.0 system.
After launching - I can't log anything from servers.rb file, and no debug info is written to syslog.
On launch debugging info gives:

<code>
NOTICE: <executable> OverSIP 1.3.7 starting...
INFO: <executable> master process name: oversip
Exception `Errno::EHOSTUNREACH' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-    1.3.7/lib/oversip/config.rb:534 - No route to host - connect(2)
WARN: <Config> cannot autodiscover local IPv6: No route to host - connect(2)     (Errno::EHOSTUNREACH)
WARN: <Config> disabling IPv6 for SIP
Exception `Errno::EHOSTUNREACH' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-    1.3.7/lib/oversip/config.rb:534 - No route to host - connect(2)
WARN: <Config> cannot autodiscover local IPv6: No route to host - connect(2)     (Errno::EHOSTUNREACH)
WARN: <Config> disabling IPv6 for WebSocket
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-    1.3.7/lib/oversip/proxies_config.rb:65 - can't clone TrueClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-    1.3.7/lib/oversip/proxies_config.rb:65 - can't clone TrueClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-    1.3.7/lib/oversip/proxies_config.rb:65 - can't clone TrueClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone Fixnum
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone TrueClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone Fixnum
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone TrueClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone TrueClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone FalseClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone TrueClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone Fixnum
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone Fixnum
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone Fixnum
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone TrueClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone TrueClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone TrueClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone TrueClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone Fixnum
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone TrueClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone Fixnum
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone TrueClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone TrueClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone FalseClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone TrueClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone Fixnum
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone Fixnum
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone Fixnum
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone TrueClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone TrueClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone TrueClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone TrueClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone Fixnum
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone TrueClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone Fixnum
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone TrueClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone TrueClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone FalseClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone TrueClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone Fixnum
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone Fixnum
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone Fixnum
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone TrueClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone TrueClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone TrueClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone TrueClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone Fixnum
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone TrueClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone Fixnum
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone TrueClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone TrueClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone FalseClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone TrueClass
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone Fixnum
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone Fixnum
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone Fixnum
Exception `TypeError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone TrueClass

  core:
    nameservers                     :  null
    syslog_facility                 :  daemon
    syslog_level                    :  debug

  sip:
    sip_udp                         :  yes
    sip_tcp                         :  yes
    sip_tls                         :  yes
    enable_ipv4                     :  yes
    listen_ipv4                     :  172.16.144.112
    enable_ipv6                     :  no
    listen_ipv6                     :  null
    listen_port                     :  5060
    listen_port_tls                 :  5061
    use_tls_tunnel                  :  yes
    listen_port_tls_tunnel          :  5062
    callback_on_client_tls_handshake:  yes
    local_domains                   :  null
    tcp_keepalive_interval          :  300
    record_route_hostname_tls_ipv4  :  null
    record_route_hostname_tls_ipv6  :  null

  websocket:
    sip_ws                          :  yes
    sip_wss                         :  yes
    enable_ipv4                     :  yes
    listen_ipv4                     :  172.16.144.112
    enable_ipv6                     :  no
    listen_ipv6                     :  null
    listen_port                     :  10080
    listen_port_tls                 :  10443
    use_tls_tunnel                  :  yes
    listen_port_tls_tunnel          :  10444
    callback_on_client_tls_handshake:  yes
    max_ws_message_size             :  65536
    max_ws_frame_size               :  65536
    ws_keepalive_interval           :  300

  tls:
    public_cert                     :  /etc/oversip/tls/demo-tls.oversip.net.crt
    private_cert                    :  /etc/oversip/tls/demo-tls.oversip.net.key
    ca_dir                          :  /etc/oversip/tls/ca/
    full_cert                       :  /tmp/oversip_full_cert_20130324-87880-1mokn47

INFO: <executable> increasing rlimits for 'nofiles'
INFO: <executable> creating Posix Message Queue for communicating master and     syslogger processes
INFO: <PosixMQ /oversip_syslogger> queue requires 2008000 bytes
INFO: <PosixMQ /oversip_syslogger> rlimits for 'msgqueue' is 9223372036854775807     bytes (>= 2008000), no need to increase it
Exception `Errno::EINVAL' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-    1.3.7/lib/oversip/posix_mq.rb:80 - Invalid argument - mq_open
WARN: <PosixMQ /oversip_syslogger> cannot set queue attributes due to user     permissions, using system default values
INFO: <PosixMQ /oversip_syslogger> #<POSIX_MQ:0x00000802c3cdc8>
INFO: <PosixMQ /oversip_syslogger> wheel
WARN: <PosixMQ /oversip_syslogger> maxmsg=10, msgsize=1024, but recommended values are maxmsg=1000, msgsize=2000
Exception `Errno::EBADF' at (eval):6 - Bad file descriptor - mq_send
Exception `Errno::EBADF' at (eval):16 - Bad file descriptor - mq_send
INFO: <TLS> TLS enabled
Exception `Errno::EBADF' at (eval):6 - Bad file descriptor - mq_send
Exception `Errno::EBADF' at (eval):16 - Bad file descriptor - mq_send
INFO: <TLS> inspecting CA file 'cacert.pem'...
Exception `Errno::EBADF' at (eval):6 - Bad file descriptor - mq_send
Exception `Errno::EBADF' at (eval):16 - Bad file descriptor - mq_send
INFO: <TLS> 'cacert.pem': 158 public certificates found
Exception `Errno::EBADF' at (eval):6 - Bad file descriptor - mq_send
Exception `Errno::EBADF' at (eval):16 - Bad file descriptor - mq_send
INFO: <TLS> 158 public certificates available for TLS validation
Exception `Errno::EBADF' at (eval):6 - Bad file descriptor - mq_send
Exception `Errno::EBADF' at (eval):16 - Bad file descriptor - mq_send
NOTICE: <launcher (master)> using Ruby 1.9.3p392 (2013-02-22 revision 0) [x86_64-    freebsd9.0]
Exception `Errno::EBADF' at (eval):6 - Bad file descriptor - mq_send
Exception `Errno::EBADF' at (eval):16 - Bad file descriptor - mq_send
NOTICE: <launcher (master)> using EventMachine-LE 1.1.4
Exception `Errno::EBADF' at (eval):6 - Bad file descriptor - mq_send
Exception `Errno::EBADF' at (eval):16 - Bad file descriptor - mq_send
NOTICE: <launcher (master)> starting event reactor...
Exception `Errno::EBADF' at (eval):6 - Bad file descriptor - mq_send
Exception `Errno::EBADF' at (eval):16 - Bad file descriptor - mq_send
INFO: <SIP launcher> SIP UDP server listening on IPv4 172.16.144.112:5060
Exception `Errno::EBADF' at (eval):6 - Bad file descriptor - mq_send
Exception `Errno::EBADF' at (eval):16 - Bad file descriptor - mq_send
INFO: <SIP launcher> SIP TCP server listening on IPv4 172.16.144.112:5060
Exception `Errno::EBADF' at (eval):6 - Bad file descriptor - mq_send
Exception `Errno::EBADF' at (eval):16 - Bad file descriptor - mq_send
INFO: <SIP launcher> SIP TLS-Tunnel server listening on IPv4 127.0.0.1:5062
Exception `Errno::EBADF' at (eval):6 - Bad file descriptor - mq_send
Exception `Errno::EBADF' at (eval):16 - Bad file descriptor - mq_send
INFO: <launcher (master)> spawned stud server (PID 87888) listening on     172.16.144.112 : 5061
Exception `Errno::EBADF' at (eval):6 - Bad file descriptor - mq_send
Exception `Errno::EBADF' at (eval):16 - Bad file descriptor - mq_send
INFO: <WebSocket launcher> WebSocket WS server listening on IPv4     172.16.144.112:10080 provides 'sip' WS subprotocol
Exception `Errno::EBADF' at (eval):6 - Bad file descriptor - mq_send
Exception `Errno::EBADF' at (eval):16 - Bad file descriptor - mq_send
INFO: <WebSocket launcher> WebSocket WSS_TUNNEL server listening on IPv4     127.0.0.1:10444 provides 'sip' WS subprotocol
Exception `Errno::EBADF' at (eval):6 - Bad file descriptor - mq_send
Exception `Errno::EBADF' at (eval):16 - Bad file descriptor - mq_send
INFO: <launcher (master)> spawned stud server (PID 87892) listening on     172.16.144.112 : 10443
Exception `Errno::ESRCH' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-    1.3.7/lib/oversip/launcher.rb:275 - No such process
Exception `ArgumentError' at /usr/local/lib/ruby/gems/1.9.1/gems/oversip-    1.3.7/lib/oversip/launcher.rb:457 - unsupported signal SIGPOLL
Exception `Errno::EBADF' at (eval):6 - Bad file descriptor - mq_send
Exception `Errno::EBADF' at (eval):16 - Bad file descriptor - mq_send
NOTICE: <launcher (master)> cannot trap signal POLL, it could not exist in this     system, ignoring it
Exception `Errno::EBADF' at (eval):6 - Bad file descriptor - mq_send
Exception `Errno::EBADF' at (eval):16 - Bad file descriptor - mq_send
NOTICE: <launcher (master)> calling OverSIP::SystemEvents.on_initialize() method...
Exception `Errno::EBADF' at (eval):6 - Bad file descriptor - mq_send
Exception `Errno::EBADF' at (eval):16 - Bad file descriptor - mq_send
NOTICE: <SystemEvents> on_initialize() method is not defined
Exception `Errno::EBADF' at (eval):6 - Bad file descriptor - mq_send
Exception `Errno::EBADF' at (eval):16 - Bad file descriptor - mq_send
NOTICE: <launcher (master)> executing         OverSIP::SystemCallbacks.on_started_callbacks...
Exception `Errno::EBADF' at (eval):6 - Bad file descriptor - mq_send
Exception `Errno::EBADF' at (eval):16 - Bad file descriptor - mq_send
NOTICE: <launcher (master)> calling OverSIP::SystemEvents.on_started() method...
Exception `Errno::EBADF' at (eval):6 - Bad file descriptor - mq_send
Exception `Errno::EBADF' at (eval):16 - Bad file descriptor - mq_send
NOTICE: <SystemEvents> on_started() method is not defined
Exception `Errno::EBADF' at (eval):6 - Bad file descriptor - mq_send
Exception `Errno::EBADF' at (eval):16 - Bad file descriptor - mq_send
NOTICE: <launcher (master)> master process (PID 87885) ready
Exception `Errno::EBADF' at (eval):6 - Bad file descriptor - mq_send
Exception `Errno::EBADF' at (eval):16 - Bad file descriptor - mq_send
NOTICE: <launcher (master)> OverSIP 1.3.7 running in background
removing /tmp/oversip_full_cert_20130324-87880-1mokn47...done

I presume that the posix mq_send can't access the mqueue, and so the syslogger fails to log anything. The oversip_syslogger mqueue file is created, though, but with default maxmsg value. Can anyone advice me, how to get rid of the problem?

Posible bug in http_request.uri_query

Currently for the following URI:

/chat.php?param=QWEQWE?query=qweqwe&jaja=qwe

The method uri_query returns:

param=QWEQWE?query=qweqwe&jaja=qwe

It's an invalid URI query since the ? should be a &.

Questions:

  • Why is that accepted by the parser?
  • What to do?

log_xxxx() methods don't work in some cases

log_xxxxx() methods don't print to syslog in certain cases. For example within the (OverSIP::SystemEvents).on_initialize event.

I must check all the events with log_xxxxx() and log_system_xxxxx() methods.

Improve IPv6 global-scope detection

In some circumstances OverSIP's IPv6 auto-detection fails. It happens in a Debian Squeeze with IPv6 support but no global IPv6 set:

  1. eth0 has an IPv6 (link scope): inet6 addr: fe80::21c:c0ff:fe40:2bf4/64 Scope:Link
  2. The method OverSIP::Config.discover_local_ip returns such an IPv6.
  3. But OverSIP::Config.post_check fails when trying to bind in that IPv6 (since it has link scope).

The error is:

CRIT:  Invalid argument - error binding in UDP IP 'fe80::21c:c0ff:fe40:2bf4' and port 5060 (Errno::EINVAL: Invalid argument - bind(2)) (Errno::EINVAL)
/var/lib/gems/1.9.1/gems/oversip-1.0.4/lib/oversip/config.rb:442:in `rescue in block (2 levels) in post_check'
/var/lib/gems/1.9.1/gems/oversip-1.0.4/lib/oversip/config.rb:415:in `block (2 levels) in post_check'
/var/lib/gems/1.9.1/gems/oversip-1.0.4/lib/oversip/config.rb:414:in `each'
/var/lib/gems/1.9.1/gems/oversip-1.0.4/lib/oversip/config.rb:414:in `block in post_check'
CRIT:  exiting with error status

It's strange but in Ubuntu 12.04 step 2 above fails so the IPv6 is not chosen as valid IPv6.

Create packages for Centos, RedHat, *BSD...

Currently just a DEB package is provided for automatic installation. We need to also provide RMP packages and so on so they automatically install the oversip gem along with init scripts (like the DEB package does).

Can you help on this?

ruby_stun.c fails to build on Centos 5

Centos 5 uses gcc 4.1.2 which doesn't grok "0b00000001":

stun_ruby.c:117:22: error: invalid suffix "b00000001" on integer constant

Could this be changed to 0x1 instead please?

Config.rb uses websocket_max_message_size instead of ws_max_message_size

There is an inconsistency for this config param.
security.rb (and default oversip.conf) refer to ws_max_message_size
config.rb refers to websocket_max_message_size

Causes the error:

oversip[3280]:  ERROR: <launcher (master)> comparison of Fixnum with nil failed (ArgumentError)#012...OverSIP/lib/oversip/websocket/ws_framing.rb:181:in `receive_data'#012...OverSIP/lib/oversip/websocket/listeners/ws_server.rb:144:in `process_received_data'#012...OverSIP/lib/oversip/websocket/listeners/ws_server.rb:110:in `receive_data'

Patch:

--- a/lib/oversip/config.rb
+++ b/lib/oversip/config.rb
@@ -66,7 +66,7 @@ module OverSIP
       },
       :security => {
         :sip_max_body_size                 => 65536,
-        :websocket_max_message_size        => 65536,
+        :ws_max_message_size               => 65536,
         :connection_in_inactivity_timeout  => 120,
         :connection_out_inactivity_timeout => 120,
         :anti_slow_attack_timeout    => 4
@@ -124,7 +124,7 @@ module OverSIP
       },
       :security => {
         :sip_max_body_size                 => :fixnum,
-        :websocket_max_message_size        => :fixnum,
+        :ws_max_message_size               => :fixnum,
         :connection_in_inactivity_timeout  => [ :fixnum, [ :greater_equal_than, 2 ] ],
         :connection_out_inactivity_timeout => [ :fixnum, [ :greater_equal_than, 2 ] ],
         :anti_slow_attack_timeout          => :fixnum

oversip as a sip client?

It would be cool if we can use OverSIP to initiate or process a request, in our case, just SIP/MESSAGE, nothing more.

Thanks,

WebSocketEvents.on_connection() should not automatically accept the WS connection with 101

Currently once the WebSocketEvents.on_connection() is executed OverSIP automatically accepts the WS connection (by calling OverSIP::WebSocket#accept_ws_handshake()) unless the user has called to connection.http_reject().

This avoids the user writting a WebSocketEvents.on_connection() code in which OverSIP generates a SIP request (Uac module) and waits for the SIP response before it accepts or rejects the WS connection. So for a new design:

  • The default WebSocketEvents.on_connection() in default_server.rb must call to #accept_ws_handshake().
  • If the user redefines it, he should explicitly call to #accept_ws_handshake() or http_reject() in the event code. Otherwise the WS won't be replied.

ruby_noexec_wrapper: No such file or directory

I'm trying to start fresh installed OverSIP on CentOS and running into a problem:
/usr/bin/env: ruby_noexec_wrapper: No such file or directory

Can you give me a clue what might be wrong with my installation or the way I start server?

Parser does not accept the colon character in uri parameter

OverSIP parser fails parsing the following URI:

sip:[email protected];gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6

Here the response to a SIP message with ':' in the 'gr' uri parameter.

MESSAGE sip:[email protected];gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6 SIP/2.0
Via: SIP/2.0/WS r5k2o4bs5n91.invalid;branch=z9hG4bK8799091
Max-Forwards: 69
To: sip:[email protected];gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6
From: "aaa" <sip:[email protected]>;tag=60e4p0ufsr
Call-ID: a1imtv2trsj5qhq4b2j8
CSeq: 6418 MESSAGE
Content-Type: text/plain
Supported: path, outbound, gruu
User-Agent: JsSIP 0.3.0-devel
Content-Length: 2

aa

JsSIP | TRANSPORT | WebSocket disconnected (code: 4000, reason: SIP message parsing error) 

':' character is permitted in URI paramater value as per RFC3261 (rule param-unreserved):

uri-parameter     =  transport-param / user-param / method-param
                     / ttl-param / maddr-param / lr-param / other-param

other-param       =  pname [ "=" pvalue ]
pname             =  1*paramchar
pvalue            =  1*paramchar
paramchar         =  param-unreserved / unreserved / escaped
param-unreserved  =  "[" / "]" / "/" / ":" / "&" / "+" / "$"

Need to use "TLS1.0" in outbound TLS connection

Unfortunatelly EventMachine TLS stuf sucks as it does not allow to set what kind of SSL/TLS version to use for outbound connections. In SIP we need TLS and not SSL, but currently that depends on the installed version of openssl, and usually it's SSL.

"500 Internal Error" with body "NoMethodError: undefined method `<' for nil:NilClass"

From Emil Lenngren to the JsSIP mailing list:

Hi. When I login on JsSIP Tryit and try to register, I get an alert saying "Sip registration error. 500 Internal error". In the debug console in Chrome, I see the following:

SIP/2.0 500 Internal Error
Via: SIP/2.0/WS fheo1i09vdvq.invalid;branch=z9hG4bK3589954
From: "08xxxxxx" <sip:[email protected]>;tag=mfhmpdgvan
To: <sip:[email protected]>;tag=84b5c3d94d81
Call-ID: 1huc2enrs10na1dglbl8vo
CSeq: 81 REGISTER
Content-Length: 52
Content-Type: text/plain
Server: OverSIP/1.4.0.beta

NoMethodError: undefined method `<' for nil:NilClass

Since he was using the tryit.jssip.net platform, the logs remain at serverside

Debian Wheezy: init "start" action when already running kills oversip_stud processes

Running /etc/init.d/oversip start while OverSIP is already running produces a wrong output and, even worse, it kills oversip_stud processes:

root@ks26913:/tmp# /etc/init.d/oversip start
[....] Starting OverSIP (oversip):
INFO:  OverSIP 1.0.1 starting...
INFO:  master process name: oversip
WARN:  cannot autodiscover local IPv6: Network is unreachable - connect(2) (Errno::ENETUNREACH)
WARN:  dissabling IPv6 for SIP
WARN:  cannot autodiscover local IPv6: Network is unreachable - connect(2) (Errno::ENETUNREACH)
WARN:  dissabling IPv6 for WebSocket
CRIT:  configuration error: UDP IP 'X.X.X.X' and port 5060 already in use
CRIT:  exiting with error status
[warn] already running. ... (warning).
root@ks26913:/tmp# echo $?
0

OverSIP security limits don't work under Ubuntu 12.10

OverSIP deb package installs a /etc/security/limits.d/oversip.conf file to increase the numbre of file descriptors (sockets) and Posix messsage queues OverSIP can handle. The dile has this content:

# Increase the ammount of open file descriptors by oversip system user.
# This is required for both OverSIP and STUD servers (both running with
# oversip user).
#
oversip    soft    nofile    65536
oversip    hard    nofile    65536


# Increase the Posix Message Queue ammount of bytes for root user (the
# queue used by OverSIP is created as root).
# NOTE: Each OverSIP instance requires 2008000 bytes. Let's allocate
# a value for 4 instances of OverSIP (2008000 x 4 = 8032000). Increase
# this value if you need more instances of OverSIP in this host.
#
root    soft    msgqueue    8032000
root    hard    msgqueue    8032000

However under Ubuntu 12.10 it does not work:

INFO: <executable> creating Posix Message Queue for communicating master and syslogger processes
INFO: <PosixMQ /oversip_syslogger> queue requires 2008000 bytes
INFO: <PosixMQ /oversip_syslogger> incrementing rlimits for Posix Message Queues (currently 819200 bytes) to 2008000 bytes (ulimit -q)
CRIT: <launcher> the process already has the maximum number of files and message queues open (Errno::EMFILE: Too many open files - mq_open)
CRIT: <launcher> exiting with error status

However adding the following to /etc/security/limits.conf makes it to work:

*       soft    msgqueue    8032000
*       hard    msgqueue    8032000
*       soft    nofile        65536
*       hard    nofile        65536

I need to inspect why this is required and why the previous settings is not enough.

Installation on FreeBSD 9.0

trying to install it i get:

gem install oversip

Building native extensions. This could take a while...
ERROR: Error installing oversip:
ERROR: Failed to build gem native extension.

    /usr/local/bin/ruby extconf.rb

creating Makefile

make
compiling stun_ruby.c
stun_ruby.c: In function 'Stun_parse_request':
stun_ruby.c:58: warning: ISO C90 forbids mixed declarations and code
stun_ruby.c:117:22: error: invalid suffix "b00000001" on integer constant
*** Error code 1

hope it helps you

Remove "Logic" name

For example remove OverSIP::LogicError exception since the word "Logic" does not make sense after the refactoring in "/etc/oversip/server.rb".

Make a framework for OverSIP 3rd party modules

The proposal is the following:

OverSIP Modules Configuration Directory: /etc/oversip/modules_conf/

3rd party OverSIP modules must provide a single configuration file (a Ruby .rb file) to be set by the user and stored in this directory. Every Ruby file in this directory is loaded when OverSIP is started, but before OverSIP executes the OverSIP::SystemCallbacks.on_started_callbacks callbacks set by 3rd party modules and the OverSIP::SystemEvents.on_started() method provided by the user (in server.rb).

Typically a Ruby file in this directory belongs to a 3rd party OverSIP module, for example "oversip-mod-database". This file should include code for the user to set module specific parameters. For example:

/etc/oversip/modules_conf/oversip-mod-database-conf.rb:

OverSIP::Modules::Database::Connection.new({
  :name => :local_mysql,
  :db_type => "mysql",
  :db_host => "localhost",
  :db_user => "xxxxxx",
  :db_pass => "xxxxxx"
  :db_name => "my_oversip"
})

In /etc/oversip/server.rb the user loads the "oversip-mod-database" library at the top of the file:

require "oversip-mod-database"

[...]

When OverSIP is started:

  • It loads main files under /etc/oversip/ (oversip.conf, proxies.conf and server.rb).
  • When loading server.rb it will load the library "oversip-mod-database". Such a library will set a callback via OverSIP::SystemCallbacks.on_started() to perform the DB connection(s).
  • Then OverSIP will load files under /etc/oversip/modules_conf/ directory (oversip-mod-database-conf.rb above). In this file the user creates some DB connections.
  • OverSIP will then run the OverSIP::SystemCallbacks.on_started_callbacks. One of those callbacks (the one set by "oversip-mod-database" library) will then inspect the DB connections created by the user and will perform the corresponding DB connections.
  • After that OverSIP will run the OverSIP::SystemEvents.on_started() method provided by the user (in server.rb). There the user can access to the DB by using any of the created connections.
  • OverSIP will then run the loop. Any code within server.rb (including SIP and WebSocket events) can make use of the DB connections.

Announce public address in NAT environments like AWS

In scenarios like Amazon AWS the hosts have private addresses and there are public ones pointing to them. OverSIP must work in those cases by binding into the private addresses and announcing the associated public IP into the headers (Via, Record-Route, Path...).

It must be done in 1.4.x series.

documentation on reverse proxy

Oversip looks really cool I set it up, however I don't see how I configure the SIP server it proxies to. We have an existing sip server we want to enable websockets on. I got the example html page to connect to our oversip but I don't see I tell it where our SIP server is.

Unknown destination for SIP-call to a web-client

Hi!

At first thank you, guys, for a such useful product!

We have tried to make it work with out staging SIP-router (Crocodile SN/Kamailio). SIP router and OverSIP run on different hosts. However demo web-client (JsSIP, SIPML5) was configured to use OverSIP. Registration works good and it was possible to make a call from Chrome to few SIP-clients. But not vice a versa. When we try to make a call/message to web-client SIP router says: SIP/2.0 478 Unresolvable destination.
I have looked deeper into packets on the wire. And I suppose that problem is under "Via" headers. In the example below there's an attempt to call from one web-client to another. As we can see the first "Sent-By" from websocket is not valid "address:port" pair. I can suppose that this "broken text" is some kind of "session-id" for the webRTC side. But it has no value for present SIP intercommunication and should be fixed by WS/SIP gateway. Is OverSIP able to pass calls from SIP-to-websockets or it's not intended for this?

Record-Route: sip:10.61.24.86:5060;transport=tcp;lr;ovid=37762562
Record-Route: sip:[email protected]:10080;transport=ws;lr;ovid=37762562
Via: SIP/2.0/TCP 10.61.24.86:5060;branch=z9hG4bKa2cfcf39c4669b9484e0db9483def8aa3b23ce39;rport
Via: SIP/2.0/WS qhdk0k626e3o.invalid;branch=z9hG4bK8794175
Max-Forwards: 10
To: sip:[email protected]
From: sip:[email protected];tag=gcaodhu26a
Call-ID: q4uvkkdcrfoanlu0gk1d
CSeq: 2780 INVITE
.....

Your comments would be very appreciated.
best regards,
Alexey

Master branch should be stable

Branches are almost free, experiments should be done in different branches and master should always be as stable as possible.

Always use Outbound for WS clients

Regardless a SIP-WS client does not indicate Outbound (RFC 5626) support, it must be assumed since otherwise incoming in-dialog requests would not arrive to the client (since OverSIP cannot open WS connections).

CRIT: <launcher (master)> can't trap reserved signal: SIGVTALRM (ArgumentError)

Not sure where else to post or ask for help. I can not get oversip to start, Ikeep getting the following critical error. Any hints on how to get this working would be appreciated.

CRIT: <launcher (master)> can't trap reserved signal: SIGVTALRM (ArgumentError)
/usr/local/src/OverSIP/lib/oversip/launcher.rb:466:in trap' /usr/local/src/OverSIP/lib/oversip/launcher.rb:466:intrap_signals'
/usr/local/src/OverSIP/lib/oversip/launcher.rb:149:in block in run' /usr/local/rvm/gems/ruby-2.0.0-p0/gems/eventmachine-le-1.1.5/lib/eventmachine.rb:173:incall'
CRIT: <launcher (master)> exiting with error status
INFO: <launcher (master)> killing stud server with PID 21196...
INFO: <launcher (master)> killing stud server with PID 21200...
CRIT: <launcher (daemonize)> master process failed to start
CRIT: <launcher (daemonize)> exiting with error status

Apt fails to upgrade from 1.3.6 to oversip_1.3.7_all.deb

The relevant apt-get output is:

Calculating upgrade... Done
The following packages will be upgraded:
oversip
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
18 not fully installed or removed.
Need to get 0 B/152 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue [Y/n]?
(Reading database ... 61614 files and directories currently installed.)
Preparing to replace oversip 1.3.6 (using .../archives/oversip_1.3.7_all.deb) ...
installing 'oversip' Ruby Gem version 1.3.7...
ERROR: Could not find a valid gem 'oversip' (= 1.3.7) in any repository
ERROR: Possible alternatives: oversip
dpkg: error processing /var/cache/apt/archives/oversip_1.3.7_all.deb (--unpack):
subprocess new pre-installation script returned error exit status 2
[....] Restarting OverSIP (oversip):

And indeed there is no gem in the data.tar.gz w/in oversip_1.3.7_all.deb.

I'm using deb.versatica.com for the debs.

Don't restart oversip if deb install fails due to Gem installation

Currently if the required oversip Gem version is not published (or fails to compile) the command apt-get install oversip performs anyway the "restart" action (which should not take place):

Preparando para reemplazar oversip 1.0.0 (usando .../archives/oversip_1.0.0_all.deb) ...
installing 'oversip' Ruby Gem (version ~>1.0.7.beta1)...
ERROR:  Could not find a valid gem 'oversip' (~> 1.0.7.beta1) in any repository
dpkg: error al procesar /var/cache/apt/archives/oversip_1.0.0_all.deb (--unpack):
 el subproceso script pre-installation nuevo devolvió el código de salida de error 2
configured to not write apport reports
                                      Restarting OverSIP (oversip):
INFO: <executable> OverSIP 1.0.6.beta3 starting...
INFO: <executable> master process name: oversip
WARN: <Config> cannot autodiscover local IPv6: Network is unreachable - connect(2) (Errno::ENETUNREACH)
WARN: <Config> dissabling IPv6 for SIP
WARN: <Config> cannot autodiscover local IPv6: Network is unreachable - connect(2) (Errno::ENETUNREACH)
WARN: <Config> dissabling IPv6 for WebSocket
INFO: <executable> applied configuration:

It's hard to understand since the preinst script has set -e and returns code 2 (error) so I would expect that the deb installation should be stopped:

https://github.com/versatica/OverSIP/blob/master/debian/preinst

Implement "anti_slow_attack_timeout"

Requirements (given that security->anti_slow_attack_timeout value is set to 2 seconds):

  • For incoming SIP TCP connections, once the TCP connection is established and, if there is no data received within 4 seconds, then close the connection.
  • For incoming SIP TCP connections, once data is being received, if there is not a full SIP message within 4 seconds, then close the connection.
  • For incoming SIP TLS connections, once the TLS connection is established and, if there is no data received within 4 seconds, then close the connection.
  • For incoming SIP TLS connections, once TLS connection is established and data is being received, if there is not a full SIP message within 4 seconds, then close the connection.
  • For incoming WS connections, once the TCP connection is established and, if there is no HTTP GET received within 1 second (hardcoded), then close the connection.
  • For incoming WS connections, once WS frames are being received, if there is not a full WS message within 4 seconds, then close the connection.
  • For incoming WSS connections, once the TLS connection is established and, if there is no HTTP GET received within 1 second (harcoded), then close the connection.
  • For incoming WSS connections, once WS frames are being received, if there is not a full WS message within 4 seconds, then close the connection.
  • For outgoing SIP TCP connections, once data is being received, if there is not a full SIP message received within 4 seconds, then close the connection.
  • For outgoing SIP TLS connections, once TLS is established and data is being received, if there is not a full SIP message received within 4 seconds, then close the connection.
  • For incoming SIP or WS TLS connections, if the TLS connection is not established within 4 seconds (harcoded), close connection (just applies when NOT using Stud TLS proxy).
  • For outgoing SIP TLS connections, if the TLS connection is not established within 4 seconds (harcoded), close connection.

OverSIP v1.4.0 SIP registration issue

With the new OverSIP v1.4.0 installed and the only change in the oversip.conf to be included w.r.t. v1.3.0 was advertised_address_ipv4 in SIP and WS profile, it is not able to register to the OpenSIPS registrar. We have an AWS server with the given below details. We have OpenSIPS and OverSIP on the same AWS machine and trying to register an extension through SIPml5 latest code uploaded. With the same components installed but with OverSIP v1.3.0 we can register the extension though and also could make outbound calls but there were issues with inbound calls due to NAT which OverSIP 1.4.0 can resolve but with OverSIP v1.4.0 installed we could not even register to the OpenSIPS and given below are the configuration and output of an ngrep command:

OpenSIPS public advertised ipv4: a.b.c.d
OpenSIPS private IP: w.x.y.z
OpenSIPS port: efgh

OverSIP advertised_address_ipv4: a.b.c.d
OverSIP private IP: w.x.y.z
OverSIP port: pqrs
w.x.y.z:pqrs
a.b.c.d:pqrs

SIPml5 NAT'ed Public IPv4: l.m.n.p
SIPml5 NAT'ed Public port: hijk
l.m.n.p:hijk

ngrep output:

T l.m.n.p:hijk -> w.x.y.z:pqrs [AP]
GET / HTTP/1.1..Upgrade: websocket..Connection: Upgrade..Host: a.b.c.d:pqrs..Origin: http://a.b.c.d..Sec-WebSocket-Protocol: sip..Pragma: no-cache..Cach
e-Control: no-cache..Sec-WebSocket-Key: Iye+y+TilFccY4aSeXQ0Qw==..Sec-WebSocket-Version: 13..Sec-WebSocket-Extensions: x-webkit-deflate-frame..User-Agent: Mozilla/
5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36..Cookie: __utma=134628469.304461993.1377669373.1379266315.1379
274392.8; __utmb=134628469.2.10.1379274392; __utmc=134628469; __utmz=134628469.1377669373.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)....

T w.x.y.z:pqrs -> l.m.n.p:hijk [AP]
HTTP/1.1 101 Switching Protocols..Upgrade: websocket..Connection: Upgrade..Sec-WebSocket-Accept: hfm7/cqAtPsoy3h9T2zpGjK8Hmo=..Sec-WebSocket-Protocol: sip..Server:
OverSIP/1.4.0....

T l.m.n.p:hijk -> w.x.y.z:pqrs [AP]
...E.7...r...c...D..........................a...............S...V...[.......V.......Y...M.......e...........[...Y..._...G.......E...C...E...........D.......w.....
..................S...E.......f.......X...........G.......................t...V...........D.......w...].......S...A...S...T.......V.......C...D...C.......G...D....
...^...T...........Z...^...Z...B.......P...R...Y.......V...
...............R.......T.......T.......:...R...........p...r...t...R...{...C.......V...X...E.......=...
E...R.......T...Y...z.......G...................=...V...V...Y...X...Y...c...T...=...G...R...G...:...

T w.x.y.z:pqrs -> l.m.n.p:hijk [AP]
.~..SIP/2.0 500 Internal Error..Via: SIP/2.0/WS df7jal23ls0d.invalid;branch=z9hG4bKFRNce5IP03ylmlaRwn60hhbpxpmV1HoS;rport..From: "9003"sip:[email protected];ta
g=SRGd38Rr1hT8OfuQFSQ4..To: "9003"sip:[email protected];tag=b062f4bf.3cdba5ae..Call-ID: 97ac7c06-c07e-b21c-2cca-6f0bcebb9ba8..CSeq: 17680 REGISTER..Content-Len
gth: 67..Content-Type: text/plain..Server: OverSIP/1.4.0....OverSIP::RuntimeError: proxy must be a OverSIP::SIP::Proxy instance

Could someone please help us out in resolving the issue. What I feel after looking at the output of the ngrep is that there is something wrong with the new OverSIP v1.4.0 code because the request to the OpenSIPS for registering an extension never reached, it died at OverSIP end itself.

Error when receiving a SIP INVITE from a connection open by OverSIP

  • OverSIP opens a TCP/TLS connection with a SIP peer.
  • The peer sends a SIP INVITE/REGISTER/SUBSCRIBE/NOTIFY to OverSIP using the same connection.
  • OverSIP detects Outbound or force_nat() is called.
  • The following error occurs:
ERROR: <launcher (master)> error raised during event loop and rescued by EM.error_handler:
ERROR: <launcher (master)> undefined method `outbound_flow_token' for #<OverSIP::SIP::IPv4TcpClient:0x0000000130fb50> (NoMethodError)
/home/ibc/Proyectos/github_OverSIP/lib/oversip/sip/core.rb:171:in `connection_outbound_flow_token
/home/ibc/Proyectos/github_OverSIP/lib/oversip/sip/proxy.rb:343:in `add_routing_headers
/home/ibc/Proyectos/github_OverSIP/lib/oversip/sip/proxy.rb:436:in `use_target'
/home/ibc/Proyectos/github_OverSIP/lib/oversip/sip/proxy.rb:386:in `try_next_target'

This is because as per RFC 3261 a SIP element X should not accept incoming request via a connection open by X (unless Outbound or Alias is being used), and thus OverSIP is not ready for that.

What to do? allow it and "fix" the problem? or be strict and reply 403?

Ensure internal 500 error has no a extra Via

If an error occur after setting a Proxy but before the request is sent, then the internal 500 response would contain the new Via added by OverSIP (as part of the generated client transaction) and thus the UAC would not match the response.

Improve it.

Define how unicode hostnames should be dealt with

AFAIK the only way to represent a unicode hostname is by using its IDNA encoded form. So, if someone would try to route a packet to domain 'ñamñam.com' OverSIP should convert that to 'xn--amam-fqac.com' and then do the appropriate DNS lookup.

For reference, every builtin Python function that does a DNS lookup based on a hostname encodes it like this. I did the same in pycares. So this should probably be addressed in em-udns.

Unable to run oversip on ubuntu 12.04

The exception :

/usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.1/bin/oversip:146:in run': undefined methodfatal' for OverSIP::Executable:Class (NoMethodError)
from /usr/local/lib/ruby/gems/1.9.1/gems/oversip-1.3.1/bin/oversip:194:in <top (required)>' from /usr/local/bin/oversip:23:inload'
from /usr/local/bin/oversip:23:in `

'

Please help.

Thanks !

Redesign request.proxy()

Currently:

proxy = @request.proxy(PROXY_ID)
proxy.on_provisional_response(response) { lalala }
proxy.route

Proposal (=~ @saghul):

proxy = OverSIP.get_proxy(PROXY_ID)
proxy.on_provisional_response(response) { lalala }
proxy.route(@request)

NOTE: The @request object within the logic file MUST NOT have a "proxy" attribute (due to internal design).

can't clone Fixnum / TrueClass in FreeBSD 9.0

Running OverSIP 1.3.7 in FreeBSD 9.0 gives the following errors:

Exception `TypeError' at [...]/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone Fixnum
Exception `TypeError' at [...]/gems/oversip-1.3.7/lib/oversip/proxies_config.rb:65 - can't clone TrueClass

Must fix it.

Have a consistent version in the gem and debian package

Right now the Debian package version and gem version are disconnected and the Debian package installs a given gem version on install time. This is wrong in so many levels, but lets focus and fix them one by one.

The debian package should be built with OverSIP gem contents inside and install them from within the package, that is, without downloading the gem from anywhere.

For the moment dependencies are still downloaded on install time.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.