VoIP PBX Software - Shamrock Software GmbH
This configuration dialogue controls the communication between IP telephones
and the Cactus server with the Session Initiation Protocol SIP.
- Realm: Internal realm of your Cactus server, e.g. "Cactus". Not all
IP phones have a realm configuration field, so Cactus allows the internal or
external IP address for authentication, too, and also the DynDNS domain
configured in the Network settings or the Windows
- Internal registration interval: This defines the time after which
Cactus requires a re-registration from IP phones. Default is 180 seconds (three
- External registration interval: Defines after which time Cactus will
re-register itself at SIP providers. Default is 600 seconds (ten minutes).
- Only local registrations allowed: On by default, hindering external
IP phones somewhere in the Internet from registering at your server. Must be
switched off if external branches are allowed; a DynDNS domain or static IP is
also required in this case.
- Force authentication for registrations from LAN: On by default. If
disabled, local IP phones can register at the server even if they are not
configured as branches. We recommend to leave this on, otherwise people having
access to your building would be able to receive calls.
- Force authentication for calls from LAN: On by default. If disabled,
local IP phones can make calls even if they are not configured as branches. We
recommend to leave this on, otherwise people having access to your building
would be able to abuse your server.
- Automatic external access: If enabled, Cactus will not require an
escape digit in front of a number. The access digit 0 will be added
automatically to numbers which are not in the user
list and are longer than the maximum length of internal
ISDN numbers. However, it is still possible to use an asterisk and a
provider number to select a specific provider (or *0 for ISDN). Leave this
disabled if your internal ISDN numbers have 4 digits or more so that a safe
decision internal/external is impossible, if you require
project numbers or if you need to distinguish business from private calls.
This setting affects all telephones and is disabled by default.
- Country code: Enter your own country code here including 00 at the
beginning, e.g. 0044 for UK or 001 for USA/Canada. If this value is 001, Cactus
uses µ-Law as ISDN encoding, otherwise A-Law is used as required for Europe and
- Insert area code if required: If local numbers can be dialled without an
area code at the telephones used with Cactus, the area code is added if the
number does not start with 0 and if it is not a special number.
- Area code: Enter your own local area code here, e.g. 020 for London
or 415 for San Francisco. Note that if your country code is 001, Cactus expects
a 3-digit area code here, otherwise a leading 0 is required as usual in Europe.
- Special numbers not starting with 0: The area code will not be added
to numbers (e.g. 112) which start with a digit sequence (e.g. 11) entered here.
You may enter multiple sequences delimited by commas.
- Diversion for no answer after ... seconds: This is the time after
which a call will be diverted if it is not accepted at the
called branch. The default value is 20 s. (Each ringing sound is equivalent to
about 4 seconds.)
An external STUN server (Simple traversal of UDP over NAT) is used by the
Cactus server if the Internet access does not use Windows RAS but a NAT
router (Network Address Translation) in order to find out its own public IP
- Server address: Domain name of the STUN server to be used, e.g.
stun.sipgate.net. Note that this does not need to be the STUN server of the
provider you are actually using (though it should be under normal
- Server port: Port number of the STUN server. Default is 3478, but
Sipgate uses 10000.
- Update period: Default is 180 seconds (three minutes). Should be 60
to 900 typically.
- NAT keepalive: If a port forwarding of port 5060 to the IP address
of the Cactus server is configured in your router (recommended, if possible!),
enter 0 here to avoid unnecessary traffic. Otherwise the value should be
slightly below the NAT timeout of your router; default is 50 seconds. Cactus
will then send empty UDP packets to all SIP providers using the given interval
to keep the router port open. The setting is ignored if no STUN server is
entered, which is typical if no router is used but RAS (PPPoE or similar).
If no router is used but Windows RAS (PPPoE driver or similar), the
field for the server address should be empty to avoid unnecessary traffic. In
this case, Cactus will retrieve the public IP address from the RAS driver once
If you have a static external IP address, enter it in the field
"Server address" and leave the "Server port" empty.
The ISDN configuration is required only if an ISDN adapter with a CAPI 2.0
driver is present.
- External access prefix: If the ISDN adapter is a branch within an
ISDN PBX which requires an escape code for external access, enter this digit
here (typically a 0). Leave this field empty otherwise.
- Active controllers: If you have more than one ISDN controller, you
can select here which controllers are actually used for outgoing MSNs which are
configured for "any" controller.
- Length of internal numbers: If the ISDN adapter is a branch within
an ISDN PBX which requires a digit for external access, enter the maximum
length of local branch numbers here (including any group numbers). Enter 0 here
- Suppress own number: Your number will not be signalled for outgoing
ISDN calls if this option is checked. The option requires the CLIR service
enabled in the public exchange (Calling Line Identification Restriction),
otherwise it does not have an effect.
- Tone dial timeout: If the caller "forgets" to dial # behind a
number, the call will be initiated after the timeout configured here. Values
from 4 to 99 are allowed, default is 5 (just as in many IP phones).
The following parameters are available for the entries in
the MSN list (multiple subscriber number):
- ISDN controller: Enter 1 if you have a simple ISDN adapter with just
one controller/bus. Otherwise enter the corresponding bus number for each MSN.
(Note that this is not a channel number since one ISDN bus typically has two
- MSN: The "Multiple Subscriber Number" is one of the local numbers of
an ISDN bus. Within an ISDN PBX, this is a (short) branch number. At an
external ISDN line, it is typically one of your local ISDN numbers without the
area code. It is not a problem to use the same ISDN adapter for more than one
application, e.g. for a fax program and Cactus, but the MSNs must differ. If
your ISDN PBX does not signal any MSN, you must enter a minus sign here.
- Use for outgoing call: MSN will be used for IP phones for outgoing
ISDN calls. The following options apply:
- No: Will never be used for outgoing ISDN calls (but can be used for
incoming calls, see below).
- Business: Outgoing external calls with 0 as escape code, but also
for routing incoming SIP calls to the ISDN PBX.
- Private: Outgoing external calls with 9 as escape code.
- Special assignment, e.g. GSM box: This option is intended for using
the given ISDN line for special area or country codes only as configured in
the routing section, e.g. a ISDN-GSM gateway box
for mobile number ranges. A possibly configured external access digit is
ignored in this case.
- Incoming ISDN call: Allows incoming ISDN calls to be routed to IP
branch numbers. The following options apply:
- Ignore: Calls on this MSN will be ignored completely. Alternatively
you can delete this number from the list.
- VoIP destinations entered with DTMF: Cactus accepts the call and
uses touch-tone digits for the destination.
- Fixed VoIP destinations: Enter one or more IP numbers, use commas
for separation. It is also possible to enter e.g. *212345 to route the ISDN
call to 12345 using the SIP provider 2.
- Number for outgoing VoIP calls (CLIR): If you enter a number here
and if your SIP provider supports it, this number
will be displayed at the called party instead of the one entered for the SIP
provider (CLIR=calling line identification representation). Most providers
require a number format like 44... for UK (starting with the country code, no
leading 0). Leave this field empty if not required.
Please note the following:
- Do not use external MSNs to Cactus MSNs in the ISDN PBX if they are
configured as "VoIP destinations entered with DTMF". Alien users could abuse
your server for expensive calls.
- The number of MSNs does not directly correspond with the number of
simultaneous calls. However, in some ISDN PBXs only one call is possible over
one MSN. To avoid problems, Cactus uses MSNs alternatively if an external
access digit is configured for ISDN. If not, only the first configured MSN will
- A special NT-mode ISDN controller (network termination) is displayed if
present, but no configuration is required.
You can configure up to nine SIP providers which will used for external
connections. When you click on [New], default parameters of some common
providers will be inserted. We recommend not to create multiple accounts for
using multiple numbers but - if the provider supports it - add numbers to an
existing account; otherwise you will get in trouble if you need more than nine
- Index: Enter a number from 1 to 9. This can be used by phones with
*1 to *9 in front of a destination number to select one SIP provider. 0 is
reserved for ISDN
- Real name (screen name): Your VoIP phone number for the specified
SIP provider. Note that this number must also be configured in the
call distribution to specify which phones should ring
for incoming calls.
- User-specified display name if applicable (CLIR): Enable this option
only if this account supports individually different display numbers as set in
the user configuration for the calling line
- Account (username): The account name which your provider gave you
for this account. Often this is a network-internal number.
- Authentication name (optional): Used by some providers; if empty,
the username is used for authentication.
- Password: The password configured at your SIP provider.
- Realm: The SIP realm, mostly the same as in the registrar field.
- Registrar: Enter the domain name of the provider's SIP server (e.g.
- Port: The SIP port number of your provider, typically 5060.
- Simultaneous channels: Some SIP providers allow only one log-in per
account. If this is the case, enter 1, otherwise a higher value like 2 or 5.
You can also enter 0 here to disable an account temporarily without having to
delete its configuration.
- Use following line as fallback: You can select ISDN here or an
alternative SIP provider which will be used if the current provider is not
available or all of its channels are busy.
|Sample numbering plan
Short access codes
Project no. prefix
Private call prefix
Here you can define the branch numbers, usernames and passwords of your
Cactus PBX. No entries are required here if you only intend to use conventional
telephones connected to an existing ISDN PBX.
- Number: The branch number should have two to four digits typically.
While alpha names would be possible technically, we recommend numeric branches
to allow dialling with a normal telephone keypad. If you are using an ISDN PBX,
too, please make sure that the first digit of the IP branches differs from the
ISDN and analogue branch numbers like in the sample numbering plan on the
- Name: Used for writing names in the user list and in the PBX log.
All characters except commas are allowed.
- Password: The password should have 4 to 8 characters and is
case-sensitive. It is used for IP phone authentication. Digits are preferred
for easy entry. Note that this is not the configuration password of IP phones
but the registrar authentication.
- Outgoing provider: If you do not want to use the default
routing for this branch, a special SIP account or
ISDN MSN can be selected here. (Yet a different SIP
provider can be used by dialling *1 to *9 in front of the number or *0 for
ISDN. Also, a call distribution rule like 112 to
*00112 would still work.)
- Number for outgoing VoIP calls (CLIR): If you enter a number here
and if your provider supports it, this number will
be displayed at the called party instead of the one entered for the SIP
provider (CLIR=calling line identification representation). Most providers
require a number format like 44... for UK (starting with the country code, no
leading 0). Leave this field empty if not required. - Please make sure that a
call distribution rule for incoming calls is also
defined for every SIP number used here.
- One call only: If enabled, Cactus will send a busy signal if a call
is routed to an engaged user. If disabled and if the IP phone supports
multi-line operation, the user can switch between multiple connections.
Note: If the SIP server configuration does not
require a password for authentication in the local-area network, an IP phone
can register with any branch number even if it is not configured here (not
- Always/immediate: Calls are always and immediately diverted to the
given destination number.
- If busy: Calls are diverted if this user is busy. This depends on
the number of lines available in the phone and on the option "One call only"
- If not available: Calls are diverted if the phone is not registered
at the server, e.g. because its power is switched off.
- If not answering: If the user does not accept the call within a
given time frame (typically 20 seconds), the destination
number will ring in addition. Effectively this diversion type implements
a delayed parallel call, so the original branch can still accept the call.
- The redirection is ignored if the calling party is identical to the
diversion destination (secretary function).
- If the destination is a mobile phone, please make sure with your network
provider that the call is not connected unless it is really accepted by the
called person; otherwise the other telephones in a calling group would no
- Disabling a diversion type does not clear the destination number field,
which makes it easy to re-activate it later on.
- Many SIP telephones have a "Do not disturb" button, or allow to reject a
call. These functions will typically answer calls with a "Busy" status.
- Some SIP telephones have diversion options of their own; however, they will
not work for external callers or when the phone is switched off. This is why
the Cactus diversion function should be preferred. For the same reason, the
seconds for a time-based diversion should be set to a higher value in the
telephone than in Cactus (e.g. Snom).
- When using Cactus for diverting calls from and to external numbers, the
caller pays for the call to Cactus only, and you pay for the outgoing
connection from Cactus to the destination number. As a result, you will not get
rich by diverting calls to a 0900 premium number owned by you, but poor.
- Please take into account that an ISDN bus has 2 channels only! A call from
a local ISDN phone on the same bus as Cactus cannot be diverted to an external
ISDN number because this would require 3 channels.
The following user privileges can be enabled or disabled selectively:
- Diversions programmable by phone: To avoid abuse, leave this option
disabled if non-trusted persons have access to the user's
- National calls: National SIP and ISDN calls are allowed.
- International calls: International SIP and ISDN calls are allowed.
If enabled, national calls are allowed, too.
- Manual provider selection: The user is allowed to prepend *0 to *9
to the destination number for a specific provider (0=ISDN, 1-9=SIP).
- Manual MSN selection: The user is allowed to prepend *MSN* to the
destination number for using a specific MSN.
- Registration does not time out: If enabled, the SIP phone will stay
registered even if it does not re-register itself every few minutes. The option
should be used only if it is required due to firmware problems in the phone and
if its IP address will never change.
The call distribution defines which phones should ring for incoming and
outgoing calls or define speed-dial numbers. It is even possible for several
phones to ring in parallel. When creating a new rule, the following fields are
- Called number: The number dialled originally, e.g. 112, 7654321 or
032987654321. You can also simply enter an asterisk * here, this rule will be
used for all incoming external calls if no other call distribution rule is
- Description: A display text like "Fire brigade" or "My SIP number".
- Destinations: The number(s) which should be called for this entry,
e.g. 0112 or 31,32,33. If an ISDN PBX is present, the destinations can also be
ISDN or analogue phones. External destinations like cell phone numbers are
possible as well. If more than one number is given, the first one accepting a
call will get it.
The call distribution can als be used for speed dial numbers. For
instance, you might create a short code 22 as an alias for *150000. This will
select *1 for Sipgate as provider index 1 and 50000
for Sipgate's voice mailbox.
- The distribution of incoming ISDN calls to IP numbers is not defined
here but in the ISDN configuration.
- You must also enter the number(s) here which you got from your SIP
provider(s). The local branch numbers which should ring are entered as
- Short-access codes can be specified here, too, but please make sure
that these do not conflict with existing internal or external numbers.
- The call distribution is used before the
routing rules. If you have a call distribution rule e.g. from 112 to
0112, you need 0112 (not 112) in the routing rule. You can also enter e.g. *0
in front of a destination number to override a default provider given in a
user configuration by ISDN; in this sample, the
destination would be *00112.
- If an asterisk and a provider index is dialled (e.g. *1) for using a
specific provider, the call distribution is normally ignored so that it is
possible to dial user numbers of a given SIP provider. However, you might also
enter an asterisk at the beginning of a called number in the call distribution
to reroute it.
- Complete numbers are required for the called number and all
destinations (while the routing rules can use
- Cell phone numbers can be used as destinations. However, if
conventional phones should ring at the same time, please make sure that the
call is not accepted on the mobile number when you are out of range or if the
cell phone is out of service.
- For ringing several ISDN branches in parallel, define a group number
in the ISDN PBX and configure it as one destination in Cactus to avoid wasting
- Call distribution rules are used before any diversions.
It is possible to enter call distribution exceptions here which are
valid during a specified time of day and optionally also 24 hours for Saturday
and/or Sunday and national holidays, typically outside of your office hours.
The form of these exceptions is the same as for the normal
call distribution rules. If no matching rule is found within these, the normal
distribution is used. - Some tips:
- These rules override any diversions.
- If you do not want to be disturbed during the night, simply leave the
destination field empty, or enter the extension of an automatic answering
machine. This could also be the ISDN number of a Shamrock CapiCall voice
- When you are on vacation, temporarily enter e.g. 08:00 to 07:59 as night
time until you are back.
- National holidays are configured in a file FEIERTAG.INI. If Shamrock
CapiCall is installed on the same PC, the content of this file can be replaced
by a single line pointing to the holiday list in the CapiCall folder, e.g.
c:\capicall\feiertag.ini, so only one file has to be edited later.
- Clicking the [Holidays] button on a different network workstation does work
if you have started the configuration program from a mapped network drive, but
not using a UNC path like \\server\c\...
The routing configuration defines which SIP/ISDN provider should be used for
given country codes, area codes or special numbers. To be able to make external
calls, at least a routing for the external escape code 0 must be defined
- Number prefix: The code including the external access digit, e.g. 0
for an external business call, 9 for an external private call, 00 for
long-distance calls, 000 for international calls, 00033 for France and so on, 3
for internal branches beginning with 3, and so on.
- Description: Enter a display name for the code, e.g. External
business, France, and so on.
- Routing: Select the desired routing, e.g. one of your SIP providers
or ISDN. (You must configure the SIP providers
first. An entry "ISDN special" will occur only if at least one
MSN is configured as "Special assignment".)
If you are using an ISDN adapter connected as an internal branch of an ISDN
PBX, enter rules for all possible ISDN branch numbers with "ISDN" as routing so
that all ISDN branches can be called from IP telephones and SIP providers, too.
For instance, if the telephones of the ISDN PBX are in the range 31 to 38 and
41 to 48 and group numbers are in the range 301 to 309, enter one rule from "3"
to ISDN and also one from "4" to ISDN.
- The routing rules are not used if an asterisk and a provider number is used
in front of the destination number. For instance, to dial the number 765 4321
of SIP provider 1, enter *1 765 4321 at the telephone.
- The routing rules are not used either if a specific SIP account or ISDN MSN
is preset in the user configuration.
You can block specific numbers or area codes for incoming and outgoing
calls, e.g. to avoid expensive 0900 connections. Click on [New] to enter a
- Number: The first digits of the number range to be blocked (without
external access digit), e.g. 0900.
- Description: A non-functional text, e.g. Premium services.
- Many SIP providers block premium numbers themselves, e.g. 0900.
- The specified numbers are blocked regardless of how the external access is
dialled (0, 9, *0 to *9).
- If your country allows call-by-call provider selection, make sure that you
also block the call-by-call prefix codes to avoid that users can bypass the
This dialogue allows to define what calls are written into the log. Default
is OFF for all so that all calls are written:
- Only external connections: If enabled, calls between branches are
- Only outgoing connections: If enabled, incoming calls are not
- Only successful connections: If enabled, failed calls (e.g. busy)
are not logged.
- No private connections: If enabled, no calls with the private dial
prefix 9 are logged.
Project numbers are frequently used to log the time used for specific
customers or projects. The corresponding settings are available if the
automatic external access (see SIP server) is disabled:
- Dial prefix: Enter the dial prefix for project numbers, e.g. 8.
Please make sure that this does not conflict with branch numbers or other
prefixes such as 0 or 9.
- Length: Enter the desired length of your project numbers here, e.g.
2 or 4.
For example, if you want to use the project number 12 for dialling an
external business call to 02012345, enter this on your phone (assuming that the
project number prefix is 8)
8 12 0 02012345
Note that the external access digit 0 is entered after the project
number. This way even internal calls can contain a project number.
For analyzing possible problems, e.g. regarding the communication with a
specific IP telephone or with a SIP provider, there is another option:
- Trace file SIP_TRACE.TXT enabled: Off by default. You should enable
this option temporarily only since it creates an additional CPU load which is
not useful under normal circumstances. SIP communication. About the last MByte
If the Cactus program is terminated abnormally (e.g. power outage, PC with
Cactus as a service is shut down, or crash), an existing file SIP_TRACE.TXT
will be renamed to SIP_TRACE_PREV.TXT during the next restart. If
SIP_TRACE_PREV.TXT already exists in this situation, it will be overwritten.
Cactus can be launched as a Windows service so that is available even if no
user is logged in. We recommend to do this only after your configuration is
stable and everything is working since newer Windows versions (Vista and later)
do not allow to display a service as a symbol in the system tray or to open it
as a window; the activities can only be seen in the log files. Furthermore some
configuration changes (like SIP port) require a restart. - These buttons
control the operation:
- Install Cactus as a Windows service: Quits the Cactus server if it
is still running as a normal application, creates an entry "Cactus-PBX" in the
Windows services list, and starts this service.
- Stop Cactus Service: Stops the service and removes "Cactus-PBX" from
the Windows services list.
If Cactus is launched from a network drive (e.g. NAS device) or in a remote
session, you will have to register the service manually. Open a command line as
administrator and enter
SIP_PBX.exe -i in the Cactus program
folder to register the service. Then open the Services applet in the Windows
Control Panel and start the Cactus service. Let the desktop option enabled so
that the Cactus symbol is available in the system tray for opening the server
window. If you want to unregister the service later, enter
in an administrator command line window.
Please note: When run as a service, Cactus must not be configured as a
Startup link and cannot be controlled by the AppDog watchdog utility from
On the same configuration page there is also a Language selection box
(English or German). The selected language not only applies to the
configuration program itself but also to the Cactus server, to the log viewer,
and to any other multi-lingual programs from Shamrock Software on the same PC.
The Cactus Server
Starting the server
Please note that it may take a few minutes after starting the server until
the IP telephones have registered and you can use them for calls.
Startup link, AppDog, service
We recommend to launch the Cactus server automatically using a Startup
link to SIP_PBX.exe in the Windows menu Start/Programs. Alternatively, you
can also use the free AppDog utility from Shamrock to launch and monitor
the Cactus server. When your configuration is complete and stable, you can run
the Cactus server as a Windows service so that
it is available even with no user logged in.
Important: During your initial tests the server should not run as a
service because some configuraton changes require a restart which is more
cumbersome for a service.
The server window
Current registration status
dialling, SIP and
ISDN calls, etc.
Registered SIP phones
Currently active calls
SIP and CAPI interface
trace (only in debug mode)
SIP packet for the
selected trace line
The server window shows the status of SIP provider registrations, currently
registered IP telephones, current connections and other relevant information.
(In all current Windows versions it is only visible if Cactus is run as a
normal application and not as a service!)
- To show the Cactus window or to minimize it, left-click on the
Cactus symbol in the system tray section of the Windows task bar (near the time
- Clicking on [x] in the top right corner of the server windows does
not end the program but minimizes it instead to avoid that all current calls
are disconnected undeliberately.
- To end the server (if it does not run as a service) right-click on
the Cactus symbol in the system tray; a context menu will appear allowing to
stop the server. Alternatively the "File" menu of the server window can be
used. If the server is restarted within the registration timeout, the
registration status of the phones will not change (it is saved temporarily in
The window panes use the following colours for displaying status information:
- SIP providers: provider status, red
= registration failed, green = registration
- Users: SIP phone status, black = registered,
green = phone freshly registered within the
last seconds, grey = not
re-registered but registration timeout is disabled.
- Actions: Line in black = general information,
blue = SIP calls,
magenta = ISDN calls, red =
- Trace: Line in black = SIP reception,
blue = SIP transmission, magenta
= ISDN, green = general information.
The File menu of the server window contains these items:
- Configuration: Shows the configuration program.
- Debug on/off: Enlarges the server window so that debug information
becomes visible. This information is the same as in the
optional trace file SIP_TRACE.TXT.
The Help menu allows to display this manual and also the current software
Viewing the call log
|Date Time Dur...Ring Caller Type Ri...Con...Info
SIP_LOG.exe can be launched on the server of from other workstations as well
if the server hard disk is shared in the network. It displays a decoded version
of the log file. You can change the window size by dragging
the border with the mouse. The following columns are displayed:
- Date, time: The end of the call or connection.
- Duration: The duration of the connection (if successful).
- Ring: Shows how long the telephone was ringing before the call was
answered or dropped.
- Caller: The caller's number (without the external access digit).
- Type: Source and destination, controller number (if more than one
bus) and MSN for ISDN.
- Ringing: The called number(s), may be several for a group call.
- Connected: The number which actually accepted the call.
- Info: Codecs used in this connection or error code if the call
- Project: This column is shown if project numbers are enabled in the
The information in the "Flags" field of the log file is used to display the
lines in different colours:
- Green: Incoming successful external
- Blue: Outgoing successful external call
- Black: Successful internal call
- Red: The call failed, see the Info
column for the cause
The log file format
Calls handled by the Cactus server are logged in a monthly file
PBXyymm.LOG with CSV-formatted lines (comma-separated values, yy=year,
mm=month, e.g. PBX0702.LOG). You can configure which
calls are logged. The file can also be read by other programs like Microsoft
Excel. If you develop software on your own, please make sure that your read
access does not block the write access from the Cactus server.
Each line uses the following format with commas between all fields:
Date, Time, Duration, Ring, Flags, Caller, Type, Ringing, Connected,
Info, Project number
The parameters have the following meaning:
- Date: The end of the call or connection: dd.mm.yy.
- Time: The end of the call or connection: hh:mm:ss.
- Duration: The duration of the connection in seconds (if successful).
- Ring: Shows how long the telephone was ringing before the call was
answered or dropped.
- Flags: O=outbound, i=inbound, P=private, m=manual provider
- Caller: The calling number as transmitted by the provider.
- Type: Source>destination; bus:MSN or "NT" for ISDN, "i" for internal
branch, or number@registrar.
- Ringing: The called number(s), may be several for a group call,
delimited by semicolons.
- Connected: The number eventually accepting the call.
- Info: Either a 3-digit SIP error code, or a 4-digit ISDN CAPI error,
or the codecs at Caller>Called, e.g.
0=G.711A, 2=G.726, 3=GSM, 8=G.711µ, 97=iLBC, 110=Speex.
- Project number: The project number used for
this call if one has been entered.
Please note the following conventions:
- External numbers are displayed without an external access digit. The "Type"
and "Flags" fields determine if it was an internal, private, or business call.
- The "Ringing" field shows only currently registered users. As a result, it
is possible that calls are shown without any ringing number.
- For ISDN connections, the type field contains the bus (controller) number,
a colon and the MSN, e.g. i>2:43.
- SIP calls typically use an international number format even for local
calls; this is also written into the log file.
Here is a sample of an outgoing external call lasting 62.7 minutes and 1.7
seconds where the branch 52 calls the ISDN number 08912345 using the MSN 43 on
bus 1 with the project number 4711:
The following line shows an incoming call from 08912345 on ISDN bus 3, MSN
48. The IP branches 52 and 57 ring for three seconds until 52 accepts the call:
The "Info" field of the log file can contain 3-digit SIP or 4-digit ISDN/CAPI
error codes. If several phones are called as a group, only the last error is
logged. The following table shows the most typical codes.
|SIP error codes
400 Syntax error
404 Not found
407 Proxy authorization required
480 Temporarily unavailable
481 Connection does not exist
482 Loop detected
484 Incomplete address
486 Busy here
487 Aborted or finished
488 Not possible here
501 Not implemented
503 Service not available
504 Gateway timeout
|ISDN error codes
3301 Cable or hardware problem
3002 Wrong B2 protocol, e.g. DSS1 instead of NI1
3303 Layer-3 protocol error or timeout
3400, 3490, 3492 No reply
34A2 No B channel available
3481 Own MSN or destination number invalid
3492 No answer
3493 No one accepts the call
3495 Call rejected
3496 Number has changed
349C Number format illegal or wrong MSN
34A2 No channel available
34D8 Wrong destination number
The server log
SIP_PBX.TXT is another log file written by the Cactus server. It contains all
server-relevant events like program start/end, public IP detection, and
problems with registrations. This log will be deleted automatically when it
reaches a size of 100 KB. It can be viewed in the File menu of the call log
The server log also shows if there are new messages in the voice mailbox
of a SIP provider. To call the mailbox from a telephone, a
short code in the call distribution list is useful.
Repeatedly occurring errors, new voice messages at SIP providers and incoming
calls can also be displayed on other LAN workstations if they run the Popup
program which comes with Shamrock's NetMail software. If Cactus is installed on
the NetMail gateway PC, it uses the popup destination address for system
messages in the gateway configuration, otherwise the messages are sent to *
(all). In addition, the popup program also imposes a status box showing all
currently active calls.
Configuring IP phones
You must configure your IP phones properly before they can be used. Most
phones have a web interface. Typically the following settings are available:
- Registrar: For phones within your local-area network, enter the IP
address of the Cactus server, or the computer name of the server if it can be
resolved by a local DNS server. For phones used as external branches of your
server enter the DynDNS domain of your server, e.g. myserver.dyndns.org.
Alternatively you can enter the static address of your server if you have one.
- SIP port: Normally 5060. If an external IP telephone cannot register
at the server, e.g. because a router with built-in VoIP functions blocks this
port, enter the port 2 configured in Cactus, typically 5062.
- Realm: If the telephone has such a setting, enter the same name as
in the realm field of the Cactus SIP server
- DNS server: Not required if a IP address is used as registrar,
otherwise either your local DNS proxy or the DNS IP address of your Internet
- Username and Password: The username is identical with the branch
number, e.g. 57. Username and password must match the user data configured in
- Codecs: Most IP phones offer several codecs with different bit rates
and speech quality. Please make sure that at least one of the two variants
G.711a and/or G.711µ is enabled (sometimes called PCMA and PCMU) since Cactus
needs them for its built-in ISDN gateway.
Using IP telephones
Please contact the manual of your IP phone(s) how to dial a number. Often the
# key must be pressed after the number.
Incoming and outgoing calls
- Incoming VoIP calls can be routed to one or more phones using the
call distribution. The calling number is displayed
including an external access digit.
- To call another branch, i.e. a different IP phone registered at your
server or a phone connected to a local ISDN PBX, simply enter the branch
- To call an external number, use 0 as prefix for business calls or 9
for private calls. This prefix is obsolete if an automatic external access is
- To call an internal number at a SIP provider, e.g. at SipGate, press
the asterisk key followed by the index as defined in the
provider configuration and then the user number.
- To call an external number via a specific provider, press the
asterisk key followed by the index as defined in the
provider configuration and then the normal number including the area code.
The country code is required for international calls.
- To use a specific ISDN MSN, dial *MSN*Destination, e.g.
*42*08912345678. The MSN must not be 0. A prerequisite for this function is
that the selected MSN is listed in the Cactus ISDN
configuration; if there is more than one controller and the MSN is not valid on
all controllers, a specific controller number must be assigned for the MSN.
- Transferring a call requires an IP telephone with a Flash and a
Transfer key. Not all SIP phones are capable of transferring calls. Please have
a look at the manual. Cactus uses the attended transfer mechanism as
standardized in RFC 3515: A talks with B, then B wants to transfer the call to
C. So B presses the flash key and dials C. When C accepts the call, B talks
with C first. When B hangs up, A is connected to C.
If programming diversions at the telephone is allowed, the
following key sequences can be used for it which are similar to the ones being
standardized for GSM cell phones:
- **21*Number#: Always/immediate - all calls are immediately
redirected to the given number.
- **62*Number#: Not available - diverts calls if the telephone is
currently not registered at the server.
- **61*Number#: Not answering - diverts calls if they are not accepted
within ~20 seconds.
- **67*Number#: Busy - diverts calls if the user is talking and has no
- **002*Number#: All - Sets all above diversions to the given number.
- **004*Number#: Conditional - Sets all diversions except
Important notes for programming diversions:
- After entering the sequence you have to lift the headset or press the dial
key on the phone. The pound/hash key # finishes the entry for some telephones
(e.g. Grandstream BT100) and is not transmitted itself. It is therefore
optional if the telephone uses a different key for dialling. Consequently **002
is sufficient for disabling all diversions, for instance.
- After a successful programming the telephone shows either "487"
(if it can display status codes only) or "487 Diversion OK". Otherwise an
error code is displayed depending on the cause, typically
403 = forbidden or 400 = bad format.
- To disable the diversion, simply leave the Number field empty (e.g.
**21*# or even shorter **21#). You can see the current status in the
- A user who is the destination of a diversion can call the redirected
telephone without being diverted again (secretary function).
Using an ISDN PBX
If the Cactus PC is equipped with an ISDN adapter, it can be used as a
VoIP/ISDN gateway. Telephones connected to a conventional ISDN PBX can then be
used for incoming and outgoing SIP calls.
- Incoming SIP calls can be routed to
telephones connected to the ISDN PBX. The first digit(s) of these telephones
must be entered in the call distribution, and they must have ISDN as
routing destination. The displayed caller number
will always be the MSN of the ISDN adapter since it is technically impossible
to override it.
- To call an IP phone registered at the Cactus server, dial an MSN of
the ISDN adapter first which is configured for DTMF. You will hear a dial tone.
Now enter the desired branch number and press # at the end.
- To call an external number using SIP, dial an MSN of the ISDN
adapter first which is configured for DTMF. You will hear a dial tone. Now
enter the desired external number including the external prefix 0 or 9 (if no
automatic external access is configured) and press # at
the end. Be careful not to make a pause longer than five seconds. If you
mistype the number, use the asterisk key to re-enter it.
- To call an internal number at a SIP provider, dial an MSN of the
ISDN adapter first which is configured for DTMF. You will hear a dial tone. Now
enter an asterisk, the provider index and the user number to be called.
- To call an external number using a specific SIP provider, dial an
MSN of the ISDN adapter first which is configured for DTMF. You will hear a
dial tone. Now enter an asterisk, the provider index and the number to be
called. You must include the area code even for local calls. For international
calls, the country code is required.
- Transferring a call from an ISDN or analogue phone is possible, too.
Please consult your ISDN PBX manual.
More hints for using analogue and ISDN phones:
- It is useful to program a short-access key on your phone for dialling a
Cactus ISDN MSN.
- It is not mandatory to press # behind the destination number. You can
simply wait a few seconds alternatively. The timeout can be programmed in the
ISDN settings of Cactus.
- If an extension of an ISDN PBX rings during an incoming SIP call, not the
SIP caller number is displayed but the internal MSN of the ISDN card used by
Cactus. It is technically impossible to override this.
- Programming diversions (e.g. on busy) is usually done at the local ISDN
Multiple Cactus PBXs
You can link multiple Cactus servers so that their branches can dial each
other directly. To keep things simple, the first digits of the branch numbers
of the different locations should differ. Furthermore, you will either need a
static IP address or a DynDNS domain for each location.
You must buy a Cactus license for each location since one license is valid
for one server only. - The following example assumes a configuration with two
locations. Please follow these steps:
- Make sure that all local branch numbers start with 5.
- Configure a new branch 50.
- Enter the data of the Cactus-2 branch 60 as SIP
index 9: Username = 60, Registrar = server2.dyndns.org.
- Create a route from 6 to SIP index 9.
- Make sure that all local branch numbers start with 6.
- Configure a new branch 60.
- Enter the data of the Cactus-1 branch 50 as SIP index 9: Username = 50,
Registrar = server1.dyndns.org.
- Create a route from 5 to SIP index 9.
Now e.g. branch 51 at Cactus 1 can simply dial 61 even though it is at Cactus
2. - Notes:
- If an ISDN PBX is available at both locations and if there are conflicts
with their branch numbers (e.g. 31 exists at both locations), you can create a
call distribution rule e.g. from 531 to 31 at location 1, and from 631 to 531
at location 2.
- Even if theoretically possible, you should not use Cactus 2 for external
calls from Cactus 1 and vice versa. It is much more efficient to have different
SIP provider accounts at both locations.
Outbound calls do not work.
Please make sure that you have configured your own country
code correctly, e.g. 0044 for UK. Also note that you have to dial e.g. 00033...
instead of 0033 for France: An additional 0 is required for external calls if
you did not enable the automatic external access.
Otherwise Cactus would think that you have dialled a national number and adds
the international prefix. If you have configured a branch-specific
CLIR number, it must be supported by the provider;
check if it works if this field is empty.
No phone is ringing when a call comes in.
Please check what is displayed in the upper right corner of the Cactus window.
If "(?)" is shown behind the called number, no call
distribution rule was found. Please create a rule for the displayed number,
or enter an asterisk * as a wildcard for the called number. If a phone
connected to an ISDN PBX should ring, please make sure that its first digit
exists in the routing and at least one ISDN
MSN is configured for outgoing business calls.
I hear an annoying echo.
Since IP telephony uses data buffers, a speech delay of a fraction of a second
cannot be avoided. If microphone and speaker are not decoupled well, this may
result in an echo. Often reducing the volume or the microphone sensitivity
helps. But it is always best to use a headset with softphones, or at least a
headphone instead of a speaker. If a conventional ISDN or SIP telephone is
used, the speakerphone mode should be enabled only if the phone has a built-in
echo cancellation. In general, ISDN and SIP phones cause less echo problems
than analogue ones.
I cannot dial a number with an asterisk in front of it.
Some ISDN PBXs require extensions to be dialled with an asterisk * in front of
them. But Cactus interprets an asterisk in the first
place as a provider selection, and two asterisks are reserved for programming
diversions. So instead of dialling e.g. *31 for the
extension 31, please enter *0*31 at your SIP phone: *0 selects ISDN as outgoing
line, and the following *31 is then transferred to the ISDN PBX. An alternative
might be to disable the automatic external access in your ISDN PBX for the MSNs
used by Cactus. - Similarly it is possible to dial a sequence starting with *
at a SIP provider if you prepend it with an asterisk and the provider number.
Can I use a GSM gateway box?
A GSM-ISDN gateway can be used with Cactus so that calls to and from mobile
numbers are much cheapter because they are network-internal calls. You will
need a GSM box which behaves like an ISDN NT for this purpose, e.g. a 2N BRI
Lite. Connect it to one reserved outlet of the ISDN card in the Cactus PC and
define its MSN and controller number as "Special assignment" in the
ISDN settings. Then configure a proper
routing for the mobile area code(s) to "ISDN
The owner of a Cactus license is authorized to install and run the server
software on one PC. The other modules may be started from any other PC
within a local network if they are loaded from the same server PC.
Distribution of the demo version on other web sites than the ones
owned by Shamrock or on CD ROMs is prohibited. Shamrock Software is the author
of the program and of this manual and reserves all rights, including copyright
Shamrock Software grants the right to use the software but does not transfer
ownership. This right ends if the invoice is not paid in time or if any term of
this license agreement is violated by the user.
You may not use this software in any circumstances where there is any risk
that failure of this software might result in a physical injury or loss of
life. Any such use is entirely at your own risk, and you agree to indemnify
Shamrock Software from any claims relating to such unauthorized use.
© Shamrock Software GmbH