Resources:
Code: Select all
http://www.gnutelephony.org/index.php/GNU_Telephony
http://www.gnutelephony.org/index.php/GNU_SIP_Witch_configuration
http://www.gnutelephony.org/index.php/Howto_Deploy_SIP_Witch_On_Ubuntu
https://github.com/dyfet/sipwitch
https://lists.gnu.org/archive/html/sipwitch-devel/Now i have to look into why i can not connect from outside. EDIT: Since nat-traversal is not yet implemented, i'm currently looking for workarounds without a stun-server.
My current setup:
Jitsi accounts: user1/user2@192.168.0.25
Command "sipwitch policy"':
Code: Select all
binding to *:5060
policy *; interface=public-ip, public-ip.0/255.255.255.0
policy eth0; interface=192.168.0.25, 192.168.0.0/255.255.255.0
policy lo; interface=127.0.0.1, 127.0.0.0/255.0.0.0
policy loopback; interface=::1, ::1/ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
policy loopback; interface=127.0.0.1, 127.0.0.0/255.0.0.0Code: Select all
# Default values for daemon operation. This should be edited and is invoked
# by init script.
# this can be set to 0 to disable automatic startup
START=0
# specify desktop or server security model
SECURITY=server
# install specifc plugins, or use "auto" to auto-load whatever is installed...
PLUGINS="auto"
# runtime priority, recommended realtime for high capacity
#PRIORITY="1"
# can be used to adjust pthread concurrency...
#CONCURRENCY=??
# can be used to specify running effective user/group id for the server
GROUP="sipwitch"
# specify starting UID for automatic user accounts
FIRSTUID="1000"
# specify group for automatic user accounts
SIPUSERS="sipusers"
# specify admin group for admin accounts, ubuntu uses admin...
SIPADMIN="admin"
Code: Select all
<?xml version="1.0"?>
<sipwitch>
<!-- master config file. The default config can be overriden with a
runtime one stored in /var/run/sipwitch which can be installed by
a management system. If one is using a server executed under "user"
permissions, then this would be ~/.sipwitchrc.
-->
<provision>
<user id="user1">
<secret>user1</secret> <extension>201</extension> <display>user1-jitsi</display>
</user>
<user id="user2">
<secret>user2</secret> <extension>202</extension> <display>user2-jitsi</display>
</user>
</provision>
<access>
<!-- Access rules and cidr definitions. By default 127.0.0.1/::1 are in
a pre-generated "loopback" cidr. Access rule entries are now
automatically generated by scanning the network interface, so this
is for special overrides or convenience naming.
-->
<local>public-ip/24</local>
</access>
<stack>
<!-- The effective names this server processes requests for, and an optional
list of host or domain names this server will also respond to. The
default hostname is always accepted.
-->
<localnames>public-ip</localnames>
<!-- Stack configuration. Here we restrict all access to the server under
the local subnet, and we specify the local subnet is "trusted". Trusted
means that challenge digests will be relaxed for devices that are
already registered with the server, and hence reduces the total sip
traffic needed. We map for 200 calls, set 2 dispatch threads for
sip events, and bind to all interfaces.
<restricted>local</restricted>
<trusted>local</trusted>
-->
<mapped>200</mapped>
<threading>2</threading>
<interface>*</interface>
<dumping>false</dumping>
<!-- peering entry used for setting "proxy" ip address for external users
when we are behind a NAT. This is used for determining ip address for
media proxy in particular. Example entry shown. Can be ip address or
resolvable hostname.
-->
<peering>public-ip</peering>
<!-- special user id's. The "system" id is used when the server creates a
sip message that is not on behalf of any registered "ua", but rather
from the server itself. For example, when feeding a sms "message"
through the control interface, this is generated as a "system" message.
Attempts to dial the "system" id will always return SIP FORBIDDEN.
The "anon" id is used when anonymous messages are generated. These
always respond with SIP NOT FOUND if one wishes to contact anon.
<system>system</system>
<anon>anonymous</anon>
-->
<system>system</system>
<anon>anonymous</anon>
</stack>
<timers>
<!-- ring every 4 seconds -->
<ring>4</ring>
<!-- call forward no answer after x rings -->
<cfna>4</cfna>
<!-- call reset to clear cid in stack, 6 seconds -->
<reset>6</reset>
</timers>
<!-- we have 2xx numbers plus space for external users -->
<registry>
<!-- Registry properties. We specify support for numeric telephone
extensions on this machine, for 100 extensions starting at
extension 200. This is useful when sharing a common set of
user provisioning records over multiple servers which are routed
and segmented. Hence if I want to call an extension outside of
the range of the server I register with, I initially authenticate
since this server has the common provisioning, but I then am referred
to the actual target server where the destination user is registered.
Keysize is used for hash indexing range. Realm is the realm presented
for www authentication, but is normally set uuid or in /etc/siprealm.
-->
<prefix>200</prefix>
<range>100</range>
<keysize>77</keysize>
<mapped>200</mapped>
<realm>public-ip</realm>
</registry>
<!-- templates may be used to set default values for automatically
generated user accounts, such as default forwarding or password if
not set.
<templates>
<user>
<secret>123</secret>
<forwarding>
<busy>voicemail</busy>
<na>voicemail</na>
</forwarding>
</user>
<admin>
<forwarding>
<busy>operator</busy>
<na>operator</na>
</forwarding>
</admin>
</templates>
-->
<!-- Routing rules can do all sorts of transforms for dialed numbers. The
routing table can also be used to statically redirect ranges of
extension numbers to alternate servers. For example, we redirect 1xx
numbers to a different server with something like:
<redirect pattern="1xx" server="server.local"/>
or a range of numbers to a single remote entity uri:
<redirect pattern="3xx" target="sip:local@myserver.somewhere"/>
Reject rules can be used to reject with specific error messages, and
rewrite rules can add or subtract prefix or suffix codes.
-->
<routing>
</routing>
</sipwitch>update: nadir, thanks for the information. i need some time to figure things out first.