Connect a Yealink T46S phone to FreePBX

Create the account / line

Open your VoIP phone’s configuration interface. Go to the Accounts tab. Select the next free account and enter the following information:

Line active (enabled), the Label, the Display Name, the Register Name, the Username and Password of your extension, the Server Host (IP address of your FreePBX server), Port 5060 and hit confirm.

If everything went well, the Register Status should be switching from Registering to Registered.

Yealink T46S

Don’t forget to define a Line Key in the Dsskey tab to make the line visible and usable on your phone. As a Type, use Line, leave the Value on Default, define the Label to show your phone number or whatever you want to see on your phone, and as Line use the account number of the line you created above, in my case: Line 3.

Permit access to Voicemail

To add a voicemail button to your phone, in the Dsskey tab, define a Line Key that has as Type: BLF, as value *97, label it Voice Mail and select your Line as the Line (again for me: Line 3). After hitting the Confirm button, a line key button shows up with a green light (or red, if you already have a message). Of course, this only works if your voicemail is activated for this extension in the FreePBX.

You can also add a button for the general voicemail of your FreePBX system. This mailbox is normally defined ass extension 6000. In this case, the value for the line key has to be *986000. *98 allows to call a voice mailbox of another user. *97 goes to the mailbox of the extension you are using.

Configuration of a general and personal voicemail number

Problem solving

If the phone does not register, make sure the entered configuration data is correct and that the firewalls (FreePBX & your router’s firewall, in case you are on a different LAN or VLAN) allow for the connection to happen.

If you want to see the communication between your phone and your FreePBX server, connect with SSH to the FreePBX box and run the following command:

sngrep

Add a VoIP phone to your FreePBX

Create an extension

Go to the menu Applications and submenu Extensions. Click on Add New SIP [chan_pjsip] Extension.

Create new extension

Enter the User Extension, the Display Name and the Secret. You can either create a new Username or use an existing one for this line.

If you want to use voicemail, go to the Voicemail tab and provide a Voicemail Password and an Email Address (if you want to receive an email with the audio message).

If you are done, hit submit and apply config.

Define a SIP trunk in FreePBX

Go to the Connectivity menu, Trunks submenu. Click Add trunk. Add a SIP (chan_pjsip) Trunk.

Define a Trunk Name and an Outbound CallerID.

Define the Dialed Number Manipulation Rules which defines what numbers can be called. Be careful which number structures you allow, as some numbers might become very expensive.

In the pjsip Settings under General, fill out the Username, the Auth username, the Secret and the SIP Server. These information should have been given to you by your VoIP provider. The SIP Server port is mostly 5060. Authentication should be set to Outbound. If your external SIP server has a fixed IP or hostname (and you are on a public dynamic IP), then Registration should be set to Send.

SIP Trunk configuration

I also filled out the advanced tab information for Contact User, From Domain and From User. Not sure if this is absolutely necessary, but as iI was experimenting a lot to get things going, it is filled out in my case.

When you are done, hit Submit and Apply config.

Configure the SIP settings

Go to the Settings menu, Asterisk SIP settings submenu. Go to the General SIP Settings tab.

For maximum security, disallow Anonymous Inbound SIP calls & SIP Guests.

In the NAT settings, enter your static WAN IP or your dynamic DNS name.

Optional: In the Audio codecs, move the ulaw codec to the top of the list.

Now go to the SIP Settings [chan_pjsip] tab.

udp – 0.0.0.0. – All should be enabled.

0.0.0.0 (udp) Port to Listen On: 5060.

Submit and apply these changes. Restart the Asterisk service using the following command in the Admin menu, Asterisk CLI submenu:

core restart now

Configure email service for FreePBX

We will configure FreePBX to send emails through a Gmail SMTP relay. FreePBX will use Postfix of the underlying Redhat Linux system to achieve this.

Create a Google app password

Login to your google account with the email address you want to use for sending the notifications from your FreePBX system. On the Google account management page, click on Security, then on 2-Step-Verification. At the end of that page, create an App Password for your FreePBX system.

Create a password file in CLI

Create or edit the sasl_passwd file:

sudo nano /etc/postfix/sasl_passwd 

Add the following line to it:

[smtp.gmail.com]:587 my_email_address@gmail.com:My Google App Password

You do not need to worry about the spaces in the app password. Then hash map the password file:

sudo postmap /etc/postfix/sysl_passwd

After this command ran, you will see a sasl_passwd.db file in /etc/postfix. Permission son this file should be root:root.

Configure Postfix to use the Gmail relay host

Add the following lines to the Postfix main.cf file:

sudo nano /etc/postfix/main.cf
myhostname = freepbx.my.domain
relayhost = [smtp.gmail.com]:587

#Enable SASL authentication
smtp_sasl_auth_enable = yes

#Disallow methods that allow anonymous authentication
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtp_tls_security_level = encrypt

# Location of sasl_passwd
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

Now restart your postfix service:

nano systemctl restart postfix

Test your Postfix installation

echo "This is a test email" | mail -s "Test mail" destination@email.address

Optional: force Postfix to rewrite your address

Sometimes messages are rejected if the from user and the sending user don’t match up. If this happens, you have to add the following lines to the generic configuration file:

sudo nano /etc/postfix/generix
root my.sending@email.address 
root@localhost my.sending@email.address 
root@localhost.localdomain my.sending@email.address 
root@freepbx my.sending@email.address 
root@freepbx.localdomain my.sending@email.address 
asterisk my.sending@email.address 
asterisk@localhost my.sending@email.address 
asterisk@localhost.localdomain my.sending@email.address 
asterisk@freepbx my.sending@email.address 
asterisk@freepbx.localdomain my.sending@email.address
vm@asterisk my.sending@email.address

Hash map the generic file:

postmap /etc/postfix/generic

You have to add the following line to thew main.cf file:

smtp_generic_maps = hash:/etc/postfix/generic

Don’t forget to restart the Postfix service.

Test your email from FreePBX

Go to the Admin menu, User Manager submenu, select the user you want to send an email to and hit the Send Email button.

Admin / User Manager

Don’t forget to associate an email address to the user.

Asterisk commands

Asterisk command line tool

In a SSH shell, enter the asterisk command line by:

asterisk -rvvv

All SIP Trunk commands at a glance:

freepbx*CLI> core show help
!                              -- Execute a shell command
acl show                       -- Show a named ACL or list all named ACLs
aeap show client               -- Show AEAP client configuration by id
aeap show clients              -- Show all AEAP client configurations
ael reload                     -- Reload AEL configuration
ael set debug {read|tokens|macros|contexts|off} -- Enable AEL debugging flags
agi dump html                  -- Dumps a list of AGI commands in HTML format
agi exec                       -- Add AGI command to a channel in Async AGI
agi set debug [on|off]         -- Enable/Disable AGI debugging
agi show commands [topic]      -- List AGI commands or specific help
aoc set debug                  -- enable cli debugging of AOC messages
ari mkpasswd                   -- Encrypts a password
ari set debug                  -- Enable/disable debugging of an ARI application
ari show apps                  -- List registered ARI applications
ari show app                   -- Display details of a registered ARI application
ari show status                -- Show ARI settings
ari show users                 -- List ARI users
ari show user                  -- List single ARI user
bridge kick                    -- Kick a channel from a bridge
bridge show all                -- List all bridges
bridge show                    -- Show information about a bridge
bridge technology show         -- List registered bridge technologies
bridge technology {suspend|unsuspend} -- Suspend/unsuspend a bridge technology
cc cancel [core|all]           -- Kill a CC transaction
cc report status               -- Reports CC stats
cdr set debug [on|off]         -- Enable debugging in the CDR engine
cdr show active                -- Display active CDRs for channels
cdr show status                -- Display the CDR status
cdr submit                     -- Posts all pending batched CDR data
cel show status                -- Display the CEL status
channel originate              -- Originate a call
channel redirect               -- Redirect a call
channel request hangup         -- Request a hangup on a given channel
cli check permissions          -- Try a permissions config for a user
cli reload permissions         -- Reload CLI permissions config
cli show permissions           -- Show CLI permissions
confbridge kick                -- Kick participants out of conference bridges.
confbridge list                -- List conference bridges and participants.
confbridge lock                -- Lock a conference.
confbridge mute                -- Mute participants.
confbridge record start        -- Start recording a conference
confbridge record stop         -- Stop recording a conference.
confbridge show menu           -- Show a conference menu
confbridge show menus          -- Show a list of conference menus
confbridge show profile bridge -- Show a conference bridge profile.
confbridge show profile bridges -- Show a list of conference bridge profiles.
confbridge show profile user   -- Show a conference user profile.
confbridge show profile users  -- Show a list of conference user profiles.
confbridge unlock              -- Unlock a conference.
confbridge unmute              -- Unmute participants.
config list                    -- Show all files that have loaded a configuration file
config reload                  -- Force a reload on modules using a particular configuration file
config show help               -- Show configuration help for a module
core abort shutdown            -- Cancel a running shutdown
core clear profile             -- Clear profiling info
core ping taskprocessor        -- Ping a named task processor
core reload                    -- Global reload
core reset taskprocessor       -- Reset a named task processor's stats
core reset taskprocessors      -- Reset all task processors' stats
core restart gracefully        -- Restart Asterisk gracefully
core restart now               -- Restart Asterisk immediately
core restart when convenient   -- Restart Asterisk at empty call volume
core set debug category        -- Enable/disable debugging categories
core set debug                 -- Set level of debug chattiness
core set debug channel         -- Enable/disable debugging on a channel
core set trace                 -- Set level of trace chattiness
core set verbose               -- Set level of verbose chattiness
core show applications [like|describing] -- Shows registered dialplan applications
core show application          -- Describe a specific dialplan application
core show calls [uptime]       -- Display information on calls
core show channels [concise|verbose|count] -- Display information on channels
core show channeltypes         -- List available channel types
core show channeltype          -- Give more details on that channel type
core show channel              -- Display information on a specific channel
core show codecs [audio|video|image|text] -- Displays a list of registered codecs
core show codec                -- Shows a specific codec
core show config mappings      -- Display config mappings (file names to config engines)
core show file formats         -- Displays file formats
core show functions [like]     -- Shows registered dialplan functions
core show function             -- Describe a specific dialplan function
core show hanguphandlers all   -- Show hangup handlers of all channels
core show hanguphandlers       -- Show hangup handlers of a specified channel
core show help                 -- Display help list, or specific help on a command
core show hints                -- Show dialplan hints
core show hint                 -- Show dialplan hint
core show image formats        -- Displays image formats
core show license              -- Show the license(s) for this copy of Asterisk
core show profile              -- Display profiling info
core show settings             -- Show some core settings
core show sounds               -- Shows available sounds
core show sound                -- Shows details about a specific sound
core show switches             -- Show alternative switches
core show sysinfo              -- Show System Information
core show taskprocessor alerted subsystems -- List task processor subsystems in alert
core show taskprocessors [like] -- List instantiated task processors and statistics
core show threads              -- Show running threads
core show translation          -- Display translation matrix
core show uptime [seconds]     -- Show uptime information
core show version              -- Display version info
core show warranty             -- Show the warranty (if any) for this copy of Asterisk
core stop gracefully           -- Gracefully shut down Asterisk
core stop now                  -- Shut down Asterisk immediately
core stop when convenient      -- Shut down Asterisk at empty call volume
core waitfullybooted           -- Wait for Asterisk to be fully booted
dahdi create channels          -- Create channels
dahdi destroy channels         -- Destroy channels
dahdi restart                  -- Fully restart DAHDI channels
dahdi set dnd                  -- Sets/resets DND (Do Not Disturb) mode on a channel
dahdi set hwgain {rx|tx}       -- Set hardware gain on a channel
dahdi set swgain {rx|tx}       -- Set software gain on a channel
dahdi show cadences            -- List cadences
dahdi show channels [group|context] -- Show active DAHDI channels
dahdi show channel             -- Show information on a channel
dahdi show status              -- Show all DAHDI cards status
dahdi show version             -- Show the DAHDI version in use
database del                   -- Removes database key/value
database deltree               -- Removes database keytree/values
database get                   -- Gets database value
database put                   -- Adds/updates database value
database query                 -- Run a user-specified query on the astdb
database show                  -- Shows database contents
database showkey               -- Shows database contents
devstate change                -- Change a custom device state
devstate list                  -- List currently known custom device states
dialplan add extension         -- Add new extension into context
dialplan add ignorepat         -- Add new ignore pattern
dialplan add include           -- Include context in other context
dialplan debug                 -- Show fast extension pattern matching data structures
dialplan eval function         -- Evaluate dialplan function
dialplan locks show            -- List func_lock locks.
dialplan reload                -- Reload extensions and *only* extensions
dialplan remove context        -- Remove a specified context
dialplan remove extension      -- Remove a specified extension
dialplan remove ignorepat      -- Remove ignore pattern from context
dialplan remove include        -- Remove a specified include from context
dialplan set chanvar           -- Set a channel variable
dialplan set extenpatternmatchnew false -- Use the Old extension pattern matching algorithm.
dialplan set extenpatternmatchnew true -- Use the New extension pattern matching algorithm.
dialplan set global            -- Set global dialplan variable
dialplan show                  -- Show dialplan
dialplan show chanvar          -- Show channel variables
dialplan show globals          -- Show global dialplan variables
dnsmgr refresh                 -- Performs an immediate refresh
dnsmgr reload                  -- Reloads the DNS manager configuration
dnsmgr status                  -- Display the DNS manager status
fax set debug {on|off}         -- Enable/Disable FAX debugging on new FAX sessions
fax show capabilities          -- Show the capabilities of the registered FAX technology modules
fax show session               -- Show the status of the named FAX sessions
fax show sessions              -- Show the current FAX sessions
fax show settings              -- Show the global settings and defaults of both the FAX core and technology modules
fax show stats                 -- Summarize FAX session history
fax show version               -- Show versions of FAX For Asterisk components
features show                  -- Lists configured features
file convert                   -- Convert audio file
g729 show hostid               -- Show G.729 Host-ID
g729 show licenses             -- Show G.729 Licenses and Usage
g729 show version              -- Show G.729 Module Version
group show channels            -- Display active channels with group(s)
http show status               -- Display HTTP server status
iax2 provision                 -- Provision an IAX device
iax2 prune realtime            -- Prune a cached realtime lookup
iax2 reload                    -- Reload IAX configuration
iax2 set debug {on|off|peer}   -- Enable/Disable IAX debugging
iax2 set debug jb {on|off}     -- Enable/Disable IAX jitterbuffer debugging
iax2 set debug trunk {on|off}  -- Enable/Disable IAX trunk debugging
iax2 set mtu                   -- Set the IAX systemwide trunking MTU
iax2 show cache                -- Display IAX cached dialplan
iax2 show callnumber usage     -- Show current entries in IP call number limit table
iax2 show channels             -- List active IAX channels
iax2 show firmware             -- List available IAX firmware
iax2 show netstats             -- List active IAX channel netstats
iax2 show peer                 -- Show details on specific IAX peer
iax2 show peers                -- List defined IAX peers
iax2 show provisioning         -- Display iax provisioning
iax2 show registry             -- Display IAX registration status
iax2 show stats                -- Display IAX statistics
iax2 show threads              -- Display IAX helper thread info
iax2 show users [like]         -- List defined IAX users
iax2 test losspct              -- Set IAX2 incoming frame loss percentage
iax2 unregister                -- Unregister (force expiration) an IAX2 peer from the registry
indication add                 -- Add the given indication to the country
indication remove              -- Remove the given indication from the country
indication show                -- Display a list of all countries/indications
keys init                      -- Initialize RSA key passcodes
keys show                      -- Displays RSA key information
local show channels            -- List status of local channels
logger add channel             -- Adds a new logging channel
logger mute                    -- Toggle logging output to a console
logger reload                  -- Reopens the log files
logger remove channel          -- Removes a logging channel
logger rotate                  -- Rotates and reopens the log files
logger set level {DEBUG|TRACE|NOTICE|WARNING|ERROR|VERBOSE|DTMF} {on|off} -- Enables/Disables a specific logging level for this console
logger show channels           -- List configured log channels
logger show levels             -- List configured log levels
malloc trim                    -- Return excess memory to the OS
manager reload                 -- Reload manager configurations
manager set debug [on|off]     -- Show, enable, disable debugging of the manager code
manager show command           -- Show a manager interface command
manager show commands          -- List manager interface commands
manager show connected         -- List connected manager interface users
manager show eventq            -- List manager interface queued events
manager show events            -- List manager interface events
manager show event             -- Show a manager interface event
manager show settings          -- Show manager global settings
manager show users             -- List configured manager users
manager show user              -- Display information on a specific manager user
media cache create             -- Create an item in the media cache
media cache delete             -- Remove an item from the media cache
media cache refresh            -- Refresh an item in the media cache
media cache show all           -- Show all items in the media cache
media cache show               -- Show a single item in the media cache
meetme kick                    -- Kick a conference or a user in a conference.
meetme list                    -- List all conferences or a specific conference.
meetme {lock|unlock}           -- Lock or unlock a conference to new users.
meetme {mute|unmute}           -- Mute or unmute a conference or a user in a conference.
mfcr2 call files [on|off]      -- Enable/Disable MFC/R2 call files
mfcr2 destroy link             -- Destroy given MFC/R2 link
mfcr2 set blocked              -- Reset MFC/R2 channel forcing it to BLOCKED
mfcr2 set debug                -- Set MFC/R2 channel logging level
mfcr2 set idle                 -- Reset MFC/R2 channel forcing it to IDLE
mfcr2 show channels [group|context] -- Show MFC/R2 channels
mfcr2 show links               -- Show MFC/R2 links
mfcr2 show variants            -- Show supported MFC/R2 variants
mfcr2 show version             -- Show OpenR2 library version
mixmonitor {start|stop|list}   -- Execute a MixMonitor command
module load                    -- Load a module by name
module refresh                 -- Completely unloads and loads a module by name
module reload                  -- Reload configuration for a module
module show [like]             -- List modules and info
module unload                  -- Unload a module by name
moh reload                     -- Reload MusicOnHold
moh show classes               -- List MusicOnHold classes
moh show files                 -- List MusicOnHold file-based classes
moh unregister class           -- Unregister realtime MusicOnHold class
no debug channel               -- Disable debugging on channel(s)
odbc show                      -- List ODBC DSN(s)
parking show                   -- Show a parking lot or a list of all parking lots.
pjproject set log level {default|0|1|2|3|4|5|6} -- Set the maximum active pjproject logging level
pjproject show buildopts       -- Show the compiled config of the pjproject in use
pjproject show log level       -- Show the maximum active pjproject logging level
pjproject show log mappings    -- Show pjproject to Asterisk log mappings
pjsip dump endpt               -- Dump the res_pjsip endpt internals
pjsip export config_wizard primitives [to] -- Export config wizard primitives
pjsip list aors                -- List PJSIP Aors
pjsip list auths               -- List PJSIP Auths
pjsip list channels            -- List PJSIP Channels
pjsip list ciphers             -- List available OpenSSL cipher names
pjsip list contacts            -- List PJSIP Contacts
pjsip list endpoints           -- List PJSIP Endpoints
pjsip list identifies          -- List PJSIP Identifies
pjsip list registrations       -- List PJSIP Registrations
pjsip list subscriptions {inbound|outbound} [like] -- List active inbound/outbound subscriptions
pjsip list transports          -- List PJSIP Transports
pjsip qualify                  -- Send an OPTIONS request to a PJSIP endpoint
pjsip reload qualify aor       -- Synchronize the PJSIP Aor qualify options
pjsip reload qualify endpoint  -- Synchronize the qualify options for all Aors on the PJSIP endpoint
pjsip send notify              -- Send a NOTIFY request to a SIP endpoint
pjsip send register            -- Registers an outbound registration target
pjsip send unregister          -- Unregisters outbound registration target
pjsip set history {on|off|clear} -- Enable/Disable PJSIP History
pjsip set logger {on|off|host|add|method|methodadd|verbose|pcap} -- Enable/Disable PJSIP Logger Output
pjsip show aors                -- Show PJSIP Aors
pjsip show aor                 -- Show PJSIP Aor
pjsip show auths               -- Show PJSIP Auths
pjsip show auth                -- Show PJSIP Auth
pjsip show channels            -- Show PJSIP Channels
pjsip show channel             -- Show PJSIP Channel
pjsip show channelstats        -- Show PJSIP Channel Stats
pjsip show contacts            -- Show PJSIP Contacts
pjsip show contact             -- Show PJSIP Contact
pjsip show endpoints           -- Show PJSIP Endpoints
pjsip show endpoint            -- Show PJSIP Endpoint
pjsip show history             -- Display PJSIP History
pjsip show identifiers         -- List registered endpoint identifiers
pjsip show identifies          -- Show PJSIP Identifies
pjsip show identify            -- Show PJSIP Identify
pjsip show qualify aor         -- Show the PJSIP Aor current qualify options
pjsip show qualify endpoint    -- Show the current qualify options for all Aors on the PJSIP endpoint
pjsip show registrations       -- Show PJSIP Registrations
pjsip show registration        -- Show PJSIP Registration
pjsip show scheduled_tasks     -- Show pjsip scheduled tasks
pjsip show settings            -- Show global and system configuration options
pjsip show subscription {inbound|outbound} -- Show active subscription details
pjsip show subscriptions {inbound|outbound} [like] -- Show active inbound/outbound subscriptions
pjsip show transport-monitors  -- Show pjsip transport monitors
pjsip show transports          -- Show PJSIP Transports
pjsip show transport           -- Show PJSIP Transport
pjsip show unidentified_requests -- Show PJSIP Unidentified Requests
pjsip show version             -- Show the version of pjproject in use
presencestate change           -- Change a custom presence state
presencestate list             -- List currently know custom presence states
pri destroy span               -- Destroy a PRI span
pri service disable channel    -- Remove a channel from service
pri service enable channel     -- Return a channel to service
pri set debug {on|off|hex|intense|0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15} span -- Enables PRI debugging on a span
pri set debug file             -- Sends PRI debug output to the specified file
pri show channels              -- Displays PRI channel information
pri show debug                 -- Displays current PRI debug settings
pri show spans                 -- Displays PRI span information
pri show span                  -- Displays PRI span information
pri show version               -- Displays libpri version
queue add member               -- Add a channel to a specified queue
queue priority caller          -- Change priority caller on queue
queue reload {parameters|members|rules|all} -- Reload queues, members, queue rules, or parameters
queue remove member            -- Removes a channel from a specified queue
queue reset stats              -- Reset statistics for a queue
queue set penalty              -- Set penalty for a channel of a specified queue
queue set ringinuse            -- Set ringinuse for a channel of a specified queue
queue show                     -- Show status of a specified queue
queue show rules               -- Show the rules defined in queuerules.conf
queue {pause|unpause} member   -- Pause or unpause a queue member
realtime destroy               -- Delete a row from a RealTime database
realtime load                  -- Used to print out RealTime variables.
realtime mysql cache           -- Shows cached tables within the MySQL realtime driver
realtime mysql status          -- Shows connection information for the MySQL RealTime driver
realtime store                 -- Store a new row into a RealTime database
realtime update                -- Used to update RealTime variables.
realtime update2               -- Used to test the RealTime update2 method
rtcp set debug {on|off|ip}     -- Enable/Disable RTCP debugging
rtcp set stats {on|off}        -- Enable/Disable RTCP stats
rtp set debug {on|off|ip}      -- Enable/Disable RTP debugging
rtp show settings              -- Display RTP settings
say load [new|old]             -- Set or show the say mode
siren14 show version           -- Show Siren14 Module Version
siren7 show version            -- Show Siren7 Module Version
sla show stations              -- Show SLA Stations
sla show trunks                -- Show SLA Trunks
sorcery memory cache dump      -- Dump all objects within a sorcery memory cache
sorcery memory cache expire    -- Expire a specific object or ALL objects within a sorcery memory cache
sorcery memory cache populate  -- Clear and populate the sorcery memory cache with objects from the backend
sorcery memory cache show      -- Show sorcery memory cache information
sorcery memory cache stale     -- Mark a specific object or ALL objects as stale within a sorcery memory cache
ss7 mtp3                       -- Send an NET MNG message
ss7 reset cic                  -- Resets the given CIC
ss7 reset group                -- Resets the given CIC range
ss7 restart mtp3               -- Restart a link
ss7 set debug {on|off} linkset -- Enables SS7 debugging on a linkset
ss7 {block|unblock} cic        -- Blocks/Unblocks the given CIC
ss7 {reset|block|unblock} linkset -- Resets/Blocks/Unblocks all CICs on a linkset
ss7 {block|unblock} group      -- Blocks/Unblocks the given CIC range
ss7 show calls                 -- Show ss7 calls
ss7 show channels              -- Displays SS7 channel information
ss7 show cics                  -- Show cics on a linkset
ss7 show linkset               -- Shows the status of a linkset
ss7 show version               -- Displays libss7 version
stasis show topics             -- Show all topics
stasis show topic              -- Show topic
stir_shaken show certificate   -- Show stir/shaken certificate configuration by id
stir_shaken show certificates  -- Show all stir/shaken certificate configurations
stir_shaken show general       -- Show stir/shaken general configuration
stir_shaken show profile       -- Show stir/shaken profile by id
stir_shaken show profiles      -- Show all stir/shaken profiles
stir_shaken show store         -- Show stir/shaken store configuration by id
stun set debug {on|off}        -- Enable/Disable STUN debugging
timing test                    -- Run a timing test
transcoder show                -- Display DAHDI transcoder utilization.
udptl set debug {on|off|ip}    -- Enable/Disable UDPTL debugging
udptl show config              -- Show UDPTL config options
ulimit                         -- Set or show process resource limits
voicemail forward              -- Forward message to another folder
voicemail move                 -- Move message to another folder
voicemail reload               -- Reload voicemail configuration
voicemail remove               -- Remove message
voicemail show aliases         -- List mailbox aliases
voicemail show mailbox         -- Display a mailbox's content details
voicemail show users [for]     -- List defined voicemail boxes
voicemail show zones           -- List zone message formats
xmldoc dump                    -- Dump the XML docs to the specified file
xmldoc reload                  -- Reload the XML docs

Activate / deactivate SIP trunk logger

pjsip set logger on
pjsip set logger off

Make new disk usable in Linux

After installing a new hard drive, you have to follow a few steps to make it usable on your Linux system. Be sure not to erase an existing file system.

  • (1) Identify the disk “fdisk -l
fdisk -l
  • (2) Partition the disk with fdisk or cfdisk
cfdisk /dev/sdX
  • (3) Create the filesystem (format the disk) on each created partition. To create an ext4 filesystem on partition /dev/sdXY run:
mkfs.ext /dev/sdXY
  • (4) Define the mount point for the newly created filesystem editing fstab:
nano /etc/fstab

Add the line for the newly created filesystem. I prefer to refer to it by UUID and not by device ID (these might change). Get the ID using this command “cd /dev/disk/by-uuid” and “ls -l”.

/dev/disk/by-uuid/3a9128c0-c9c2-47e7-b9f0-edc049ff4d3f /data ext4 defaults 0 1

source: https://superuser.com/questions/872257/how-to-make-a-new-disk-usable-on-ubuntu-linux

    Using ACL permissions in Ubuntu

    List ACL’s for a given directory

    getfacl /var/www
    # file: www
    # owner: root
    # group: root
    user::rwx
    group::r-x
    other::r-x

    You might need to install ACL (apt install acl).

    Add a group to an ACL

    Use setfacl to add a group to the ACL

    setfacl -m g:family:rwx /var/www/

    This leads your check on ACL like this:

     # file: www
     # owner: root
     # group: root
     user::rwx
     group::r-x
     group:family:rwx
     mask::rwx
     other::r-x

    Removing an ACL entry:

    setfacl -x g:family /var/www

    Granting an additional user read-write access

    setfacl -m u:jhemp:rw /var/www

    More information: https://help.ubuntu.com/community/FilePermissionsACLs

    Synchronise two Pi-hole servers

    If you run more than one Pi-hole server in your network, it can be handy to synchronise both instances so that you do not need to add and maintain your local DNS entries and your ad-block lists on two different machines.

    Currently you have two possibilities do achieve this: Orbital-sync and Gravity-sync. Orbital-sync uses the admin interfaces to synchronise. Gravity-sync connects both instances via SSH.

    To set up gravity-Sync, you have to do the following:

    • As a precaution, backup both instances of Pi-hole using the backup function (under Settings, Teleporter tab) and, if you use a virtualisation environment, take snapshots of both instances.
    • If the two Pi-hole servers are running in different VLAN’s, do not forget to set up the corresponding firewall rules (for both directions).
    One of the two firewall rules in my Unifi Dream Machine Pro
    • On both Pi-hole instances: Install Gravity-sync using this command (source):
    curl -sSL https://raw.githubusercontent.com/vmstan/gs-install/main/gs-install.sh | bash

    A wizard will ask you for the connection information (IP, user, password) for the remote host. The configuration will be saved in /etc/gravity-sync/gravity-sync.conf.

    • On both Pi-hole instances: Run a comparison of the local and remote Pi-hole databases using:
    gravity-sync compare
    • On your master Pi-hole instance, push the configuration from your master to the slave instance. Be careful not to push a default or incomplete configuration of a new instance to your running instance.
    gravity-sync push
    • On both Pi-hole instance: To automate synchronisation run the following command:
    gravity-sync auto
    • Additionally: to adjust the frequency of updating, run one of the following commands:
    gravity-sync auto hour
    gravity-sync auto half
    gravity-sync auto quad