Arch Linux Infrastructure - VoIP Server - Part 5 - VoIPServer
Index
Part 01 - Network Switch VLANs
Part 02 - Hypervisor OS Install
Part 05 - VoIP Server - You Are Here!
Part 08 - NFTables Transparent TOR Proxy / SSH / IRC
VoIP Server Setup
Start i3-WM
startx
Open Terminal (urxvt)
Alt + Enter
Change Directory To Hypervisor Media Installs
cd /var/lib/libvirt/images/iso
Download Install Media
Find the latest version
PIAF
Note: This won’t work for a UEFI install use manual install of Scientific Linux 7.
https://sourceforge.net/projects/pbxinaflash/files/
sudo wget https://downloads.sourceforge.net/project/pbxinaflash/IncrediblePBX13-12%20with%20Incredible%20PBX%20GUI/IncrediblePBX13.2.iso
Scientific Linux 7
http://ftp1.scientificlinux.org/linux/scientific/7x/x86_64/iso/
sudo wget http://ftp1.scientificlinux.org/linux/scientific/7x/x86_64/iso/SL-7.3-x86_64-netinst.iso
Verify Interfaces Have Been Created
Check that we have the interfaces brv500 and eno1.500 from the previous step setup (Voice VLAN).
ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether f0:1f:af:32:66:4f brd ff:ff:ff:ff:ff:ff
3: brv500: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether 9a:de:fd:00:4c:9c brd ff:ff:ff:ff:ff:ff
4: brv450: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether b2:40:b2:19:5d:b2 brd ff:ff:ff:ff:ff:ff
5: brv400: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether 82:f9:79:52:52:f5 brd ff:ff:ff:ff:ff:ff
6: brv300: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether ce:0c:c4:f6:9b:41 brd ff:ff:ff:ff:ff:ff
7: brv200: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether 56:9c:3a:04:c4:f8 brd ff:ff:ff:ff:ff:ff
8: brv100: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether ae:df:f9:a5:92:e9 brd ff:ff:ff:ff:ff:ff
9: eno1.200@eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master brv200 state UP mode DEFAULT group default qlen 1000
link/ether f0:1f:af:32:66:4f brd ff:ff:ff:ff:ff:ff
10: eno1.300@eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master brv300 state UP mode DEFAULT group default qlen 1000
link/ether f0:1f:af:32:66:4f brd ff:ff:ff:ff:ff:ff
11: eno1.400@eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master brv400 state UP mode DEFAULT group default qlen 1000
link/ether f0:1f:af:32:66:4f brd ff:ff:ff:ff:ff:ff
12: eno1.500@eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master brv500 state UP mode DEFAULT group default qlen 1000
link/ether f0:1f:af:32:66:4f brd ff:ff:ff:ff:ff:ff
13: eno1.450@eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master brv450 state UP mode DEFAULT group default qlen 1000
link/ether f0:1f:af:32:66:4f brd ff:ff:ff:ff:ff:ff
14: eno1.100@eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master brv100 state UP mode DEFAULT group default qlen 1000
link/ether f0:1f:af:32:66:4f brd ff:ff:ff:ff:ff:ff
Start virt-manager
sudo virt-manager
virt-manager should now be on screen…
You should be connected to your hypervisor.
Click File => New Virtual Machine.
New VM
Create a new virtual machine
Step 1 of 5
Connection: QEMU/KVM
Choose how you would like to install the operating system
* Local install media (ISO image or CDROM)
* Network Install (HTTP,FTP, or NFS)
* Network Boot (PXE)
* Import existing disk image
Choose local install media and click Forward.
New VM
Create a new virtual machine
Step 2 of 5
Locate your install media
* Use CDROM or DVD
No device present
* Use ISO image:
ComboBox V Browse...
Automatically detect operating system based on install media
OS type: -
Version: -
Click Browse.
You should see the iso storage pool on the left, click it.
Then click your Scentific Linux 7 ISO.
Then click “Choose Volume”.
Leave Automatically detect checked and click Forward.
New VM
Create a new virtual machine
Step 3 of 5
Choose Memory and CPU settings
Memory (RAM): 1024 - + MiB
CPUs: 1 - +
Up to 4 available
Click Forward.
New VM
Create a new virtual machine
Step 4 of 5
Enable storage for this virtual machine
* Create a disk image for the virtual machine
20.0 - + GiB
1000 GiB available in the default location
* Select or create custom storage
Manage...
Click Forward.
New VM
Create a new virtual machine
Step 5 of 5
Ready to begin the installation
Name: VoIPServer
OS: Generic
Install: Local CDROM/ISO
Memory: 1024 MiB
CPUs: 1
Storage: 20.0 GiB /var/lib/libvirt/images/VirtualRouter.qcow2
X Customize configuration before install
Network selection
* Specify shared device name
Bridge name: brv500
Click the checkmark on “Customize configuration before install”.
Click the “Network selection” drop down arrow.
Click the Dropdown Box and select “Specify shared device name”.
Bridge name: brv500
Click Finish.
Now you should see the full virtual machine settings window.
VoIPServer on QEMU/KVM
Begin Installation Cancel Installaion
Overview
CPUs
Memory
Boot Options
IDE Disk 1
IDE CDROM 1
NIC :fe:ed:50
Mouse
Display Spice
Sound: ich6
Console
Channel spice
Video QXL
Controller USB
USB Redirector 1
USB Redirector 2
Add Hardware
Basic Details
Name: VoIPServre
UUID: xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Status: Shutoff (Shut Down)
Title:
Description:
Hypervisor Details
Hypervisor: KVM
Achitecture: x86_64
Emulator: /usr/sbin/qemu-system-x86_64
Firmware: UEFI x86_64: /usr/share/ovmf/ovmf_code_x64.bin
Chipset: i440FX
Cancel Apply
Click Firmware change BIOS to UEFI x86_64: /usr/share/ovmf/ovmf_code_x64.bin.
Note: You only get one chance to change this Firmware field, it will go readonly after you Begin the Installaion.
Click on CPUs at the left.
CPUs
Logical host CPUs: 4
Current allocation: 1 - +
Maximum allocation: 1 - +
Configuration
X Copy host CPU configuration
v Topology
Manually set CPU topology
Sockets: 1 - +
Cores: 1 - +
Threads: 1 - +
Click the Copy host CPU configuration check box.
Click on Boot Options.
Autostart
X Start virtual machine on host boot up
Boot device order
X Enable boot menu
X IDE CDROM 1
X IDE Disk 1
NIC :fe:ed:50
...
V Direct kernel boot
Enable direct kernel boot
Kernel path:
Initrd path:
Kernel args:
Click on IDE CDROM 1.
Virual Disk
Sorce path: - Connect
Device type: IDE CDROM 1
Storage size: -
Readonly: X
Shareable:
V Advanced options
Disk bus: IDE
Serial number:
Storage format: raw
V Performance options
Cache mode: Hypervisor default
IO mode: Hypervisor default
Click on Connect.
Choose Media
Choose Source Device or File
X ISO Image Location
Location: Browse
CD-ROM or DVD
Device Media: No device present
Click on Browse.
Choose Storage Volume
default
Filesystem Directory
iso
Filesystem Directory
Size: 145.24 GiB Free / 140.32 GiB in Use
Location: /var/lib/libvirt/images/iso
Volumes + @ X
Volumes Size Format
archlinux-2017.06.01-x86_64.iso 488.00 MiB iso
IncrediblePBX13.2.iso 849.00 MiB iso
OPNsense-17.1.4-OpenSSL-cdrom-amd64.iso 858.43 MiB iso
pfSense-CE-2.3.4-RELEASE-amd64.iso 626.79 MiB iso
SL-7.3-x86_64-netinst.iso 406.00 MiB iso
Click on Scientific Linux iso then click Choose Volume.
Click OK.
Virual Disk
Sorce path: /var/lib/libvirt/images/iso/SL-7.3-x86_64-netinst.iso Disconnect
Device type: IDE CDROM 1
Storage size: 406.00 MiB
Readonly: X
Shareable:
Make sure the IDE CDROM 1 is at the top of the Boot device order.
Click on NIC :xx:xx:50.
Virtual Network Interface
Network source: Specify shared device name
Bridge name: brv500
Device model: virtio
MAC address: X 42:de:ad:fe:ed:50
Click Apply.
We just setup this virtual machine interface so that is uses the Voice VLAN bridge setup prior.
Click on Display Spice.
Spice Server
Type: Spice server
Listen type: Address
Address: Hypervisor default
Port: X Auto
Password:
Keymap:
Change to VNC server.
VNC Server
Type: VNC server
Listen type: Address
Address: All interfaces
Port: X Auto
Password:
Keymap:
Click Apply.
Finally click “Begin Installation” at the top left.
After the VM boots …
Click your language preference.
Click Continue.
Under System click Network & Host Name.
Click Ethernet (eth0) ON.
Host name: voipserv.localdomain click apply.
Click Done.
Click Software Selection Minimal install.
Click Done.
Under System click Installation Destination.
Select your vitual disk ATA QEMU HARDDISK.
Leave Automatically configure partitioning.
Click Done.
Click Begin Installation.
Under User Settings click Root Password.
Set your root password.
Click Done.
Click User Creation.
Setup a regular user with administration permissions checked.
Wait for install to finish…
Click Reboot.
The machine will power off.
Click the Light Bulb (Show virtual hardware details).
Click on “Boot Options” and change the order “IDE Disk 1” to be first and Disconnect the “IDE CDROM 1” mounted iso.
Autostart
X Start virtual machine on host boot up
Boot device order
X Enable boot menu
X IDE Disk 1
X IDE CDROM 1
NIC :fe:ed:50
...
Click Apply.
Click IDE CDROM 1.
Virtual Disk
Source path: /var/lib/libvirt/images/iso/SL-7.3-x86_64-netinst.iso Disconnect
Click Disconnect.
Click Show the graphical console.
Click Play button “Power on the virtual machine” again.
You will now be at the login console.
Scientific Linux 7.3 (Nitrogen)
Kernel 3.10.0-514.26.1.e17.x86_64 on an x86_64
voipserv login:
Type root and the password you setup in the install process.
voipserv login: root
Password: PlebMast0r
[root@voipserv ~]#
Install some tools and updates/patch
setenforce 0
yum -y install net-tools nano wget tar
yum -y upgrade --skip-broken
# decipher your server's IP address
ifconfig
# patch grub and ignore errors if your server doesn't use it
sed -i 's|quiet|quiet net.ifnames=0 biosdevdame=0|' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg
# for older CentOS/SL 6.7 platforms, perform 3 steps below:
#wget http://incrediblepbx.com/update-kernel-devel
#chmod +x update-kernel-devel
#./update-kernel-devel
reboot
If you forget to do the sed above and updates for modules is not working, fix it like this.
mysql -u root -p passw0rd asterisk -e "update freepbx_settings set value='http://wable-repo.wardmundy.net' where keyword='MODULE_REPO' and description='repo server' limit 1"
amportal restart
Install IncrediblePBX13
cd /root
wget http://incrediblepbx.com/incrediblepbx13-12.2-centos.tar.gz
tar zxvf incrediblepbx*
./create-swapfile-DO
sed -i 's/repo2/repo/g' IncrediblePBX13-12R.sh
./IncrediblePBX*
The Incredible PBX installer runs unattended so find something to do for the next 30-60 minutes unless you just like watching over 1000 packages install. When the installation is complete, reboot your server and log back in as root. You should be greeted by something like the status of the major apps as well as your free RAM and DISK space and IP.
Note: I did three installs on SL73 and with all installs none of the commands were there below, asterisk -rvvvvvvv wasn’t there, couldn’t access the WebGUI, Ran the installer a second time then it downloaded even more stuff and finally I saw it compiling asterisk and then everything seemed to work.
System reboots automatically after the first run.
Log back in and then run the install script again.
./IncrediblePBX*
After installation completes you should get some text that says so then asks you to hit enter to reboot if everything went well.
This update utility goes to IncrediblePBX.com to retrieve the latest updates.
We test updates before release, but NO WARRANTY EXPRESS OR IMPLIED IS PROVIDED.
The first 10 updates are free. Calendar year update license is $20 per machine.
To sign up and make payment using a credit card, go to: http://nerd.bz/QwQkYO
To proceed solely at your own risk, press Enter. Otherwise, Ctrl-C to abort.
Push Enter, more stuff will update and install.
WARNING: Always run Incredible PBX behind a secure hardware-based firewall.
root@voipserv:~ $
Type: ls
ls
add-fqdn del-acct incrediblefax11.sh knock.FAQ odbcinst.ini smsblaster status7 update-speeddial
add-ip DMI incrediblepbx13-12.2-centos.tar.gz licenses.sh perl5 smsdictator timezone-setup upgrade-asterisk13-to-current-rhel
admin-pw-change favicon.ico IncrediblePBX13-12R.sh logos-b-gone pptp-install smslist.txt tm4 upgrade-asterisk13-to-current-ubuntu
avantfax-pw-change GPG-patch incrediblepbx-install-log-phase1.txt neorouter-login pygooglevoice smsmsg.txt tm4-update webmin-1.791-1.noarch.rpm
COPYING iaxmodem-restart incrediblerestore odbc-gen.sh res_odbc_custom.conf spandsp-0.0.6-35.1.x86_64.rpm update-IncrediblePBX wolfram
create-swapfile-DO incrediblebackup ipchecker odbc.ini smsblast spandsp-devel-0.0.6-35.1.x86_64.rpm update-passwords
You should see a lot more files in the /root folder now like above.
Finalization
Make your root password very secure:
passwd
Changing password for user root.
New password: PlebMast0r
Retype new password: PlebMast0r
passwd: all authentication tokens updated successfully.
Create admin password for GUI access:
/root/admin-pw-change
This script changes your admin password for FreePBX 2.11 access.
Enter new admin password (MAKE IT SECURE!!): PlebMast0r2
admin password will be changed to: PlebMast0r2
Press ENTER key to continue or Ctrl-C to abort...
Done. Use browser to access FreePBX at http://IPAddress
Set your correct time zone:
/root/timezone-setup
Please identify a location so that time zone rules can be set correctly.
Please select a continent or ocean.
1) Africa 4) Arctic Ocean 7) Australia 10) Pacific Ocean
2) Americas 5) Asia 8) Europe
3) Antarctica 6) Atlantic Ocean 9) Indian Ocean
#?
Please select a country.
1) Anguilla 19) Dominican Republic 37) Peru
2) Antigua & Barbuda 20) Ecuador 38) Puerto Rico
3) Argentina 21) El Salvador 39) St Barthelemy
4) Aruba 22) French Guiana 40) St Kitts & Nevis
5) Bahamas 23) Greenland 41) St Lucia
6) Barbados 24) Grenada 42) St Maarten (Dutch)
7) Belize 25) Guadeloupe 43) St Martin (French)
8) Bolivia 26) Guatemala 44) St Pierre & Miquelon
9) Brazil 27) Guyana 45) St Vincent
10) Canada 28) Haiti 46) Suriname
11) Caribbean NL 29) Honduras 47) Trinidad & Tobago
12) Cayman Islands 30) Jamaica 48) Turks & Caicos Is
13) Chile 31) Martinique 49) United States
14) Colombia 32) Mexico 50) Uruguay
15) Costa Rica 33) Montserrat 51) Venezuela
16) Cuba 34) Nicaragua 52) Virgin Islands (UK)
17) Curaçao 35) Panama 53) Virgin Islands (US)
18) Dominica 36) Paraguay
#?
Please select one of the following time zone regions.
1) Newfoundland; Labrador (southeast) 15) Central - NU (Resolute)
2) Atlantic - NS (most areas); PE 16) Central - NU (central)
3) Atlantic - NS (Cape Breton) 17) CST - SK (most areas)
4) Atlantic - New Brunswick 18) CST - SK (midwest)
5) Atlantic - Labrador (most areas) 19) Mountain - AB; BC (E); SK (W)
6) AST - QC (Lower North Shore) 20) Mountain - NU (west)
7) Eastern - ON, QC (most areas) 21) Mountain - NT (central)
8) Eastern - ON, QC (no DST 1967-73) 22) Mountain - NT (west)
9) Eastern - ON (Thunder Bay) 23) MST - BC (Creston)
10) Eastern - NU (most east areas) 24) MST - BC (Dawson Cr, Ft St John)
11) Eastern - NU (Pangnirtung) 25) MST - BC (Ft Nelson)
12) EST - ON (Atikokan); NU (Coral H) 26) Pacific - BC (most areas)
13) Central - ON (west); Manitoba 27) Pacific - Yukon (south)
14) Central - ON (Rainy R, Ft Frances) 28) Pacific - Yukon (north)
#?
The following information has been given:
Americas
Therefore TZ='Americas' will be used.
Local time is now:
Universal Time is now:
Is the above information OK?
1) Yes
2) No
#? 1
Updating time zone to Americas for your server...
Restarting Apache...
Redirecting to /bin/systemctl restart httpd.service
Done.
Create admin password for web apps:
htpasswd /etc/pbx/wwwpasswd admin
New password: PlebMast0r3
Re-type new password: PlebMast0r3
Updating password for user admin
Make a copy of your Knock codes:
cat /root/knock.FAQ
Knock ports for access to xxx.xxx.xxx.xxx set to TCP: 1337 1338 1339
UPnP activation attempted for UDP 5060 and your knock ports above.
To enable knockd on your server, issue the following commands:
chkconfig --level 2345 knockd on
service knockd start
To enable remote access, issue these commands from any remote server:
nmap -p 1337 xxx.xxx.xxx.xxx && nmap -p 1338 xxx.xxx.xxx.xxx && nmap -p 1339 xxx.xxx.xxx.xxx
Or install iOS PortKnock or Android DroidKnocker on remote device.
Decipher IP address and other info about your server:
status
Incredible PBX 13-12.3 for Sci Linux v.7/64
Asterisk: UP Apache: UP MariaDB: UP
SendMail: UP IPtables: UP SSH: UP
LAN port: UP Fail2Ban: UP Webmin: UP
RAM: 144M Sci Linux v.7/64 Disk: 8.8G
Asterisk 13.13.1 Incredible GUI 12.0.39
Private IP: 10.0.3.254
Public IP: XXX.XXX.XXX.XXX
System Time: Thu Jun 29 2017
Open a web browser, we installed chromium and firefox so pick your poison and enter http://10.0.3.254
Click the User/Admin switch at the bottom left to Admin then click Incredible PBX Administration.
Then click Incredible PBX Administration again and login with your admin set password above.
You should now be in and looking at Welcome to Incredible PBX screen with status boxes of your PBX box.
From here it’s up to you what you want to do with the box.
Enable PJSIP
Settings => Advanced Settings.
Dialplan and Operational
SIP Channel Driver: Both (Hit the little checkmark at the end of the field to save)
Click Apply Config.
Note: The Asterisk channel driver to use for SIP. The default is both for Asterisk 12 and higher. For Asterisk 11 and lower the default will be chan_sip. If only one is compiled into asterisk, FreePBX will auto detect and change this value if set wrong. The chan_pjsip channel driver is considered “experimental” with known issues and does not work on Asterisk 11 or lower. Default Value: both, Internal Name: ASTSIPDRIVER
This was not set to the Default Value for me.
Restart Asterisk if you change ports ie sip_chan (5061,etc) => pjsip (5060) otherwise the phones may not register.
amportal restart
Confirm ports with:
SIP Port
CLI > sip show settings
Global Settings:
----------------
UDP Bindaddress: 0.0.0.0:5061
TCP SIP Bindaddress: Disabled
TLS SIP Bindaddress: Disabled
Videosupport: No
Textsupport: No
Ignore SDP sess. ver.: No
AutoCreate Peer: Off
Match Auth Username: No
Allow unknown access: Yes
Allow subscriptions: Yes
Allow overlap dialing: Yes
Allow promisc. redir: No
Enable call counters: No
SIP domain support: No
Path support : No
Realm. auth: No
Our auth realm asterisk
Use domains as realms: No
Call to non-local dom.: Yes
URI user is phone no: No
Always auth rejects: Yes
Direct RTP setup: No
User Agent: FPBX-12.0.74(13.13.1)
SDP Session Name: Asterisk PBX 13.13.1
SDP Owner Name: root
Reg. context: (not set)
Regexten on Qualify: No
Trust RPID: No
Send RPID: No
Legacy userfield parse: No
Send Diversion: Yes
Caller ID: Unknown
From: Domain:
Record SIP history: Off
Auth. Failure Events: Off
T.38 support: No
T.38 EC mode: Unknown
T.38 MaxDtgrm: 4294967295
SIP realtime: Disabled
Qualify Freq : 60000 ms
Q.850 Reason header: No
Store SIP_CAUSE: No
Network QoS Settings:
---------------------------
IP ToS SIP: CS3
IP ToS RTP audio: EF
IP ToS RTP video: AF41
IP ToS RTP text: CS0
802.1p CoS SIP: 4
802.1p CoS RTP audio: 5
802.1p CoS RTP video: 6
802.1p CoS RTP text: 5
Jitterbuffer enabled: No
Network Settings:
---------------------------
SIP address remapping: Disabled
Externhost: <none>
Externaddr: (null)
Externrefresh: 10
Localnet: 10.10.10.0/255.255.255.0
Global Signalling Settings:
---------------------------
Codecs: (ulaw|alaw|gsm|g726)
Relax DTMF: No
RFC2833 Compensation: No
Symmetric RTP: Yes
Compact SIP headers: No
RTP Keepalive: 0 (Disabled)
RTP Timeout: 30
RTP Hold Timeout: 300
MWI NOTIFY mime type: application/simple-message-summary
DNS SRV lookup: Yes
Pedantic SIP support: Yes
Reg. min duration 60 secs
Reg. max duration: 3600 secs
Reg. default duration: 120 secs
Sub. min duration 60 secs
Sub. max duration: 3600 secs
Outbound reg. timeout: 20 secs
Outbound reg. attempts: 0
Outbound reg. retry 403:No
Notify ringing state: Yes
Include CID: No
Notify hold state: Yes
SIP Transfer mode: open
Max Call Bitrate: 384 kbps
Auto-Framing: No
Outb. proxy: <not set>
Session Timers: Accept
Session Refresher: uas
Session Expires: 1800 secs
Session Min-SE: 90 secs
Timer T1: 500
Timer T1 minimum: 100
Timer B: 32000
No premature media: Yes
Max forwards: 70
Default Settings:
-----------------
Allowed transports: UDP
Outbound transport: UDP
Context: from-sip-external
Record on feature: automon
Record off feature: automon
Force rport: Yes
DTMF: rfc2833
Qualify: 0
Keepalive: 0
Use ClientCode: No
Progress inband: No
Language:
Tone zone: <Not set>
MOH Interpret: default
MOH Suggest:
Voice Mail Extension: *97
PJSIP Port
CLI > pjsip show transports
Transport: <TransportId........> <Type> <cos> <tos> <BindAddress....................>
==========================================================================================
Transport: 0.0.0.0-udp udp 0 0 0.0.0.0:5060
Verbose
CLI > pjsip show transport 0.0.0.0-udp
Transport: <TransportId........> <Type> <cos> <tos> <BindAddress....................>
==========================================================================================
Transport: 0.0.0.0-udp udp 0 0 0.0.0.0:5060
ParameterName : ParameterValue
=====================================================
allow_reload : false
async_operations : 1
bind : 0.0.0.0:5060
ca_list_file :
ca_list_path :
cert_file :
cipher :
cos : 0
domain :
external_media_address :
external_signaling_address :
external_signaling_port : 0
local_net : 10.10.10.0/255.255.255.0
method : unspecified
password :
priv_key_file :
protocol : udp
require_client_cert : No
tos : 0
verify_client : No
verify_server : No
websocket_write_timeout : 100
Further debug with:
CLI > sip set debug on
Extension
Click Applications => Extensions.
Device
Device: Generic PJSIP Device
Click Submit.
Add PJSIP Extension.
Add Extension.
User Extension: 701
Display Name: 701
CID Num Alias:
SIP Alias:
Extension Options
Queue State Detection: Use State
Outbound CID:
Asterisk Dial Options: tr (Unchecked) Override
Ring Time: Default
Call Forward Ring Time: Default
Outbound Concurrency Limit: 3
Call Waiting: Enable
Internal Auto Answer: Disable
Call Screening: Disable
Pinless Dialing: Disable
Emergency CID:
Assigned DID/CID
DID Description:
Add Inbound DID:
Add Inbound CID:
Device Options
This device uses PJSIP technology listening on 0.0.0.0:5060
Change SIP Driver: Change to CHAN_SIP Driver (Ignore)
Secret: <RandomGeneratedPassword>
DTMF Signaling: RFC 4733
Transport: Auto
Call Camp-On Services
Forcing default settings:
Caller Policy: Generic Device
Callee Policy: Generic Device
Default Group Inclusion
Default Directory: Exclude
Paging and Intercom
Intercom Override: Reject
Recording Options
Inbound External Calls: Don't Care
Outbound External Calls: Don't Care
Inbound Internal Calls: Don't Care
Outbound Internal Calls: Don't Care
On Demand Recording: Disable
Record Priority Policy: 10
User Manager Settings
Link to a Default User: Create New User
Username: (Unchecked) Use Custom Username
Password: <RandomDigits>
Voicemail
Status: Enabled
Voicemail Password: 1234
Require From Same Extension: no
Email Address: your@email.address
Pager Email Address:
Email Attachment: yes
Play CID: yes
Play Envelope: no
Delete Voicemail: no
VM Options:
VM Context: default
DTLS
Enable DTLS: No
Use Certificate: default
DTLS Verify: Fingerprint
DTLS Setup: Act/Pass
DTLS Rekey Interval: 0
VmX Locater
VmX Locater™: Disabled
Use When: (Unchecked) unavailable (Unchecked) busy (Unchecked) temp
Voicemail Instructions: (Checked) Standard Voicemail prompts.
Press 0: (Checked) Go To Operator
Press 1:
Press 2:
Optional Destinations
No Answer: Unavail Voicemail if Enabled
CID Prefix:
Busy: Busy Voicemail if Enabled
CID Prefix:
Not Reachable: Unavail Voicemail if Enabled
CID Prefix:
Click Submit.
Click Apply Config.
Add more extensions if need be.
Ring Group
Click Applications => Ring Groups.
Click Add Ring Group.
Add Ring Group.
Ring-Group Number: 600
Group Description: Ring All Phones
Ring Strategy: ringall
Ring Time (max 300 sec): 20
Extension List:
701
702
703
704
705
706
707
708
709
710
Extension Quick Pick: (pick extension)
Announcement: None
Play Music On Hold? Ring
CID Name Prefix:
Alert Info:
Ignore CF Settings: (Unchecked)
Skip Busy Agent: (Unchecked)
Enable Call Pickup: (Unchecked)
Confirm Calls: (Unchecked)
Remote Announce: Default
Too-Late Announce: Default
Change External CID Configuration.
Mode: Default
Fixed CID Value:
Call Recording
Record Calls: Dont Care
Destination if no answer:
Extensions <701> 701
VoIP.ms Trunk
Setup a trunk, I use http://voip.ms.
Click Connectivity => Trunks
Click Add Trunk.
Add Trunk
General Settings
Trunk Name: VoIPms
Outbound CallerID: <TenDigitPhone#>
CID Options: Allow any CID
Maximum Channels:
Asterisk Trunk Dial Options: (Unchecked)Override
Continue if Busy: (Unchecked) Check to always try next trunk
Disable Trunk: (Uncheck)
Dialed Number Manipulation Rules
(prepend) + prefix | match pattern insert remove
+ Add More Dial Pattern Fields Clear all Fields
Dial Rules Wizards:
Outbound Dial Prefix:
Outgoing Settings
Trunk Name: VoIPMS
PEER Details:
username=<6DigitUser#>
type=peer
trustrpid=yes
sendrpid=yes
secret=<password>
qualify=yes
nat=yes
insecure=invite
host=atlanta1.voip.ms
fromuser=
disallow=all
context=from-trunk
canreinvite=nonat
allow=ulaw
Incoming Settings
USER Context:
USER Details:
Leave boxs blank.
Registration
Register String:
<6DigitUser#>:<password>@atlanta1.voip.ms:5060
Submit Changes Duplicate Trunk.
Click Submit Changes.
Click Apply Config.
Outbound Routes
Click Connectivity => Outbound Routes.
Click Add Route.
Route Settings
Route Name: VoIPMS
Route CID: (Unchecked) Override Extension
Route Password:
Route Type: (Unchecked) Emergency (Unchecked) Intra-Company
Music On Hold? default
Time Group: ---Permanent Route---
Route Position: ---No Change---
Additional Settings
Note that the meaning of these options has changed. Please read the wiki for futher information on these changes. https://wiki.freepbx.org/display/FPG/Call+Recording+walk+through
Call Recording: Don't Care
PIN Set: None
Dial Patterns that will use this Route
(prepend) + prefix | [NXXNXXXXXX / CallerID] insert remove
(prepend) + prefix | [NXXXXXX / CallerID] insert remove
(prepend) + prefix | [match pattern / CallerID] insert remove
+ Add More Dial Pattern Fields
Dial patterns wizards: (pick one)
Export Dialplans as CSV: Export
Trunk Sequence for Matched Routes
0 VoIPMS
1
Optional Destination on Congestion
Normal Congestion
Submit Changes Duplicate Route.
Click Submit Changes.
Click Apply Config.
Inbound Routes
Click Connectivity => Inbound Routes.
Click Add Incoming Route.
Add Incoming Route.
Description: VoIPMS
DID Number: <YOURTELEPHONENUMBERHERE>
CallerID Number:
CID Priority Route:
Options
Alert Info:
CID name prefix:
Music On Hold: Default
Signal RINGING:
Reject Reverse Charges:
Pause Before Answer:
Privacy
Privacy Manager: No
Call Recording
Note that the meaning of these options has changed. Please read the wiki for futher information on these changes.
Call Recording: Don't Care
CID Lookup Source
Source: None
Fax Detect
Detect Faxes: No
Superfecta CID Lookup
Enable CID Superfecta:
Scheme: All
Set Destination
Ring Groups : Ring All Phones <600>
Submit Clear Destination & Submit
Click Submit.
Click Apply Config.
Setup VoiceMail On A Single Extension
Setup VoiceMail on the extension you set your ring group to end on. (Note: We already did this in extensions but just in case.)
Click Applications => Extensions.
Click ext 701.
Require From Same Extension: no
Voicemail
Status: Enabled
Voicemail Password: 888
Require From Same Extension: no
Email Address: user@domain.com
Pager Email Address:
Email Attachment: yes
Play CID: no
Play Envelope: no
Delete Voicemail: no
VM Options:
VM Context: default
OSS End Point Manager
This will manage the configuration and firmware of our Hardware VoIP Sets.
Click Admin => Module Admin top left.
Click “Check Online” button.
Scroll down the list to
Connectivity
Custom Contexts Stable Not Installed (Available online: 2.11.0.1)
DAHDi Config Stable Schmooze Com Inc GPLv3+ Not Installed (Available online: 2.11.52)
Digium Phones Config 2.11.2.3 Stable Digium GPLv2 Enabled; Not available online
Google Voice/Chan Motif 12.0.4 Stable Schmooze Com Inc GPLv3+ Enabled and up to date
OSS PBX End Point Manager Stable GPLv2+ Not Installed (Available online: 2.11.9)
WebRTC Phone 12.0.2 Stable Schmooze Com Inc GPLv3+ Enabled; Not available online
Click on OSS PBX End Point Manager.
Info
Changelog
Previous
License: GPLv2+
Description: OSS PBX End Point Manager is the free supported PBX Endpoint Manager for FreePBX. It is ***NOT*** supported by Schmoozecom. If you are looking for a supported endpoint manager please look into the Commercial Endpoint Manager by Schmoozecom, INC. The front end gui is hosted at: https://github.com/FreePBX/endpointman The backend configurator is hosted at: https://github.com/provisioner/Provisioner Pull Requests can be made to either of these and are encouraged.
More info: Get help for OSS PBX End Point Manager
Track: Stable
Action: No Action Download and Install
Click Download and Install toggle button.
Click “Process” button on the top right.
Module Administration
Please confirm the following actions:
Upgrades, installs, enables and disables:
OSS PBX End Point Manager 2.11.9 will be downloaded and installed and switched to the stable track
Click Confirm.
Status
close
Please wait while module actions are performed
Upgrading endpointman to 2.11.9 from track stable
Downloading endpointman 365823 of 365823 (100%)
Installing endpointman
Untarring..Done
Endpoint Manager Installer
Creating Phone Modules Directory
Moving Auto Provisioner Class
Creating temp folder
Creating Brand List Table
Creating Line List Table
Creating Global Variables Table
Locating NMAP + ARP + ASTERISK Executables
Inserting data into the global vars Table
Creating mac list Table
Creating model List Table
Creating oui List Table
Creating product List Table
Creating Template List Table
Create Custom Configs Table
Creating symlink to web provisioner
Update Version Number to 2.11.9
Generating CSS...Done
endpointman installed successfully
Click Return.
Click Apply Config highlighted Red at the top.
Click Connectivity.
Click OSS Endpoint Advanced Settings.
End Point Configuration Manager
Advanced Settings
Settings
OUI Manager
Product Configuration Editor
Import/Export My Devices List
Package Import/Export
IP address of phone server: 10.0.3.254 Determine for me
Configuration Type: File (TFTP/FTP)
Global Final Config & Firmware Directory: /tftpboot/
Time
Time Zone (like England/London): Americas
Time Server (NTP Server): 10.0.3.1
Local Paths
Note: Used for searching for phones:
NMAP executable path: /usr/bin/nmap
Note: Used for adding phones:
ARP executable path: /usr/sbin/arp
Note: Used for rebooting phones:
Asterisk executable path: /usr/sbin/asterisk
Web Directories
Package Server: http://mirror.freepbx.org/provisioner/v3/
Experimental
Note: Voicemail recording module, allows users to edit specific settings that you define:
(Checkmark) Enable FreePBX ARI Module (What?)
Enable Debug Mode
Disable Tooltips
Allow Duplicate Extensions
Allow Saving Over Default Configuration Files
Note: If you haven't setup the tftp server yet check this box before hitting update globals:
Disable TFTP Server Check
Disable Configuration File Backups
(Checkmark) Use GITHUB Live Repo (Requires git to be installed)
GIT Branch: Master
Update Globals
Setup
IP address of phone server::
Click Determine for me or set your VoIPServer IP: 10.0.3.254
Configuration Type: File (TFTP/FTP)
Global Final Config & Firmware Directory: /tftpboot/
Fix your Timezone to where ever you are.
Time Zone (like England/London)
Time Server (NTP Server): 10.0.3.1
I set my time server to the virtual router so everything is in sync with it.
Note: Scan for phones:
Make sure nmap is installed, all the other tools should be default installed (arp,asterisk).
Just type nmap
in the VoIP Server console and see if it shows up otherwise:
yum install nmap
Note: Voicemail recording module, allows users to edit specific settings that you define:
(Checkmark) Enable FreePBX ARI Module (What?)
Note: If you haven’t setup the tftp server yet check this box before hitting update globals:
Disable TFTP Server Check (Note: I never checked this but the creator said it causes apache to lockup if you don’t and after you reboot it will be checked if you dont have tftp setup maybe because tftp was already installed.)
(Checkmark) Use GITHUB Live Repo (Requires git to be installed)
GIT Branch: Master
You may see this warning at the top of the window:
Configuration Directory is not a directory or does not exist! Please change the location here: Here
We need to go make this directory.
Go to the terminal of the phone server and type
mkdir /tftpboot
Click refresh on the webpage and now you should see this warning.
Configuration Directory is not writable!
Please change the location: Here
Or run this command on SSH: 'chown -hR root:asterisk /tftpboot/' then 'chmod g+w /tftpboot/'
Do what it says.
chown -hR root:asterisk /tftpboot/
chmod g+w /tftpboot/
Disabled is set to "yes" in /etc/xinetd.d/tftp. Please fix
Then restart your TFTP service
Edit the TFTP configuration file.
Change server_args to -s /tftpboot
Change disable to no.
nano /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
# protocol. The tftp protocol is often used to boot diskless \
# workstations, download configuration files to network-aware printers, \
# and to start the installation process for some operating systems.
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
Restart TFTP Service.
service xinetd restart
Create a test file to download.
echo "Test123" > /tftpboot/test.txt
Install TFTP Client.
yum install tftp
Test TFTP Server.
cd
tftp 10.0.3.254
tftp> get test.txt
tftp> quit
cat test.txt
test123
Refresh page again and the warnings should now be gone.
If you want to use ftp change:
Note: Do the directions below in the console before changing this, otherwise you won’t be able to set it.
Configuration Type: File (TFTP/FTP)
Global Final Config & Firmware Directory: /var/ftp/sip/
Back to the console of the VoIP Server.
nano /etc/vsftpd/vsftpd.conf
# Example config file /etc/vsftpd/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=NO
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#anon_mkdir_write_enable=YES
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
#
# The target log file can be vsftpd_log_file or xferlog_file.
# This depends on setting xferlog_std_format parameter
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
# The name of log file when xferlog_enable=YES and xferlog_std_format=YES
# WARNING - changing this filename affects /etc/logrotate.d/vsftpd.log
xferlog_file=/var/log/xferlog
#
# Switches between logging into vsftpd_log_file and xferlog_file files.
# NO writes to vsftpd_log_file, YES to xferlog_file
xferlog_std_format=NO
#
# You may change the default value for timing out an idle session.
#idle_session_timeout=600
#
# You may change the default value for timing out a data connection.
#data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that on some FTP servers, ASCII support allows a denial of service
# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
# predicted this attack and has always been safe, reporting the size of the
# raw file.
# ASCII mangling is a horrible feature of the protocol.
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# You may fully customise the login banner string:
#ftpd_banner=Welcome to blah FTP service.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd/banned_emails
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
#ls_recurse_enable=YES
#
# When "listen" directive is enabled, vsftpd runs in standalone mode and
# listens on IPv4 sockets. This directive cannot be used in conjunction
# with the listen_ipv6 directive.
listen=YES
#
# This directive enables listening on IPv6 sockets. To listen on IPv4 and IPv6
# sockets, you must run two copies of vsftpd with two configuration files.
# Make sure, that one of the listen options is commented !!
#listen_ipv6=YES
pam_service_name=vsftpd
userlist_deny=YES
userlist_enable=YES
tcp_wrappers=YES
hide_file=*
mkdir /var/ftp/sip - Make the FTP directory for the user.
chown asterisk:asterisk /var/ftp/sip - Make asterisk the owner and group of the folder.
useradd - Add a user.
-G asterisk - Set user into asterisk group.
-d /var/ftp/sip - Set user directory to the FTP directory.
/bin/false - Disable login for this user.
PlcmSpIp - Default username for the phones FTP account.
chown - Make asterisk the owner of the directory recursively.
chmod - Make directory writable. (If you get error in webGUI about “Directory Not Writable”.
mkdir /var/ftp/sip
useradd -G asterisk -d /var/ftp/sip -s /bin/nologin PlcmSpIp
passwd PlcmSpIp
chown -R asterisk:asterisk /var/ftp/sip
chmod -R 0755 /var/ftp/sip
Show results.
cat /etc/passwd
PlcmSpIp:x:501:501::/var/ftp/sip:/bin/nologin
groups PlcmSpIp
PlcmSpIp : PlcmSpIp asterisk
systemctl enable vsftpd
systemctl start vsftpd
systemctl status vsftpd
Test FTP connection.
ftp -nv 10.0.3.254
user
331 Please specify the password.
Password:
230 Login successful.
ls
If you get:
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
Login failed.
Change the directory we specified to readonly.
Note: Don’t do chmod or OSS Endpoint can’t write firmware here.
chmod a-w /var/ftp/sip
or change /etc/vsftpd/vsftpd.conf
allow_writeable_chroot=YES
If you can enter a username but not password with a 530 Login incorrect.
530 Login incorrect.
Login failed.
Few things to check.
nano /etc/pam.d/vsftpd
#%PAM-1.0
session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth required pam_shells.so
auth include password-auth
account include password-auth
session required pam_loginuid.so
session include password-auth
Comment out the line:
#auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
Other may need to use :
pam_service_name=ftp
Instead of:
pam_service_name=vsftpd
By default vsFTPd uses the file /etc/pam.d/vsftpd. This file by default requires FTP users to have a shell listed in /etc/shells and requires them not to be listed in /etc/vsftpd/ftpusers. If you check those 2 things your probably find what the problem is. You shouldn’t have to comment out that line in the pam file.
nano /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
/bin/ksh
/bin/rksh
A common used shell that was not in my list is “/bin/false” you may be using this with your user account.
Check the FTP Log for more information.
nano /var/log/xferlog
Click Update Globals button.
Note: If you get in the webGUI “Local TFTP Server is not correctly configured” you probably didn’t restart the service or have a typo in the config try again.
Grab VoIP Hardware Firmware
Click Connectivity menu at the top.
Click OSS Endpoint Package Manager.
Click Check For Updates.
Install the phone firmware you own, were going to install Cisco and Polycom.
Note: If you click the package manager and you get a file missing error, reinstall OSS Module from the module admin.
Cant find file: /var/www/html/admin/modules/_ep_phone_modules/endpoint/master.json
Delete and reinstall OSS and try again.
Install Polycom
Status Please Wait
Downloading Brand JSON.....Done!
Downloading Brand Package...Done!
Checking MD5sum of Package....Done!
Extracting Tarball........Done!
Appears to be a valid Provisioner.net JSON file.....Continuing
Creating Directory Structure for Brand 'Polycom' and Moving Files ...................................................................................................................................................................................................................................................................................................................................... Done!
Updating Polycom brand data..........
Updating Family Lines.................
--Updating Model Lines................
Updating Family Lines.................
--Updating Model Lines................
Updating Family Lines.................
--Updating Model Lines................
Updating Family Lines.................
--Updating Model Lines................
Updating Family Lines.................
--Updating Model Lines................
Updating Family Lines.................
--Updating Model Lines................
Done!
Removing Temporary Files..............Done!
Return
Click Return.
Install Cisco
Status Please Wait
Downloading Brand JSON.....Done!
Downloading Brand Package...Done!
Checking MD5sum of Package....Done!
Extracting Tarball........Done!
Appears to be a valid Provisioner.net JSON file.....Continuing
Creating Directory Structure for Brand 'Cisco/Linksys' and Moving Files ..................................................................................................... Done!
Updating Cisco/Linksys brand data..........
Updating Family Lines.................
--Updating Model Lines................
Updating Family Lines.................
--Updating Model Lines................
Updating Family Lines.................
--Updating Model Lines................
Updating Family Lines.................
--Updating Model Lines................
Updating Family Lines.................
--Updating Model Lines................
Updating Family Lines.................
--Updating Model Lines................
Updating Family Lines.................
--Updating Model Lines................
Updating Family Lines.................
--Updating Model Lines................
Updating Family Lines.................
--Updating Model Lines................
Done!
Removing Temporary Files..............Done!
Return
Click Return.
Click Enable next to all the phone models you have.
Click Install Firmware if the option exist for the phones you have.
Downloading firmware...Done!
Checking MD5sum of Package...Matches!
Installing Firmware...
Done!
Return
Optional: Click Show/Hide Brands/Models Tab and hide all the brands you have never seen before.
Now you should be able to see the firmware in the tftp or ftp folder.
ls /var/ftp/sip
or
ls /tftpboot
OUI Manager
Add the first 6 hex values of your phones MAC address if not already there.
OSS Endpoint Device List
Automatically add devices.
Click Search on Serach or new devices in netmask 10.0.3.254/24 whatever IP range you have check use nmap.
Search Search for new devices in netmask: 10.0.3.254/24 X(Use NMAP)
Now you should see your phone sets listed under “Unmanaged Extensions”.
Click on the checkboxes next to you phone sets and then click “Add Selected Phones”.
Otherwise…
Manual add a device.
MAC Address Brand Model of Phone Line Extension Number Template
0004f2xxxxxx Polycom Soundpoint IP 670 1 701 --- 701 Custom...
Add Reset
Click Add.
Then change the phones models to the correct models.
Polycom sets add this file if you can’t get DHCP Options working.
sudo nano /var/www/html/ucs.xml
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<PHONE_IMAGES>
<REVISION ID="">
<PHONE_IMAGE>
<VERSION>4.0.11.0583</VERSION>
<PATH>http://10.10.10.254/firmware/</PATH>
</PHONE_IMAGE>
</REVISION>
</PHONE_IMAGES>
Customize ringtones, backgrounds, voicemail, vm ext
Click Edit File Configurations for: $mac.cfg
File Configuration Editor For: $mac.cfg
<?xml version="1.0" standalone="yes"?>
<!-- Default Master SIP Configuration File-->
<!-- $RCSfile: 000000000000.cfg,v $ $Revision: 1.14.22.4 $ -->
<!--
#################PROVISIONER.NET#################
# This Configuration file was generated from the Provisioner.net Library by {$provisioner_processor_info}
# Generated on: {$provisioner_generated_timestamp}
#
#
# Provisioner Information Follows:
# Brand Revision Timestamp: {$provisioner_brand_timestamp}
# Family Revision Timestamp: {$provisioner_family_timestamp}
#
##################################################
-->
<APPLICATION
APP_FILE_PATH="sip.ld"
CONFIG_FILES="{$createdFiles}"
MISC_FILES=""
LOG_FILE_DIRECTORY="/logs"
OVERRIDES_DIRECTORY="/overrides"
CONTACTS_DIRECTORY="/contacts"
LICENSE_DIRECTORY="/licenses">
</APPLICATION>
<PHONE_CONFIG>
<ALL
msg.mwi.1.subscribe="701"
msg.mwi.1.callBack="*97"
msg.mwi.1.callBackMode="contact"
sampled_audio saf.1="" saf.2="ALongTimeAgo8.wav" saf.3="Warble.wav" saf.4="SoundPointIPWelcome.wav" saf.5="LoudRing.wav" saf.6="" saf.7="" saf.8="" saf.9="" saf.10="" saf.11="" saf.12="" saf.13="" saf.14="" saf.15="" saf.16="" saf.17="" saf.18="" saf.19="" saf.20="" saf.21="" saf.22="" saf.23="" saf.24=""
np.normal.ringing.calls.tonePattern="ringer15"
up.backlight.timeout="10"
upgrade.custom.server.url="http://10.10.10.254/ucs.xml"
/>
</PHONE_CONFIG>
Then you should see a custom config in the drop down.
Select Alternative File Configurations for overrides/$mac.cfg
Click Edit File Configurations for: overrides/$mac-phone.cfg
File Configuration Editor For: $mac-phone.cfg
<?xml version="1.0" standalone="yes"?>
<!--
#################PROVISIONER.NET#################
# This Configuration file was generated from the Provisioner.net Library by {$provisioner_processor_info}
# Generated on: {$provisioner_generated_timestamp}
#
# Provisioner Information Follows:
# Brand Revision Timestamp: {$provisioner_brand_timestamp}
# Family Revision Timestamp: {$provisioner_family_timestamp}
#
##################################################
-->
<PHONE_CONFIG>
<ALL
msg.mwi.1.subscribe="701"
msg.mwi.1.callBack="*97"
msg.mwi.1.callBackMode="contact"
sampled_audio saf.1="" saf.2="ALongTimeAgo8.wav" saf.3="Warble.wav" saf.4="SoundPointIPWelcome.wav" saf.5="LoudRing.wav" saf.6="" saf.7="" saf.8="" saf.9="" saf.10="" saf.11="" saf.12="" saf.13="" saf.14="" saf.15="" saf.16="" saf.17="" saf.18="" saf.19="" saf.20="" saf.21="" saf.22="" saf.23="" saf.24=""
np.normal.ringing.calls.tonePattern="ringer15"
up.backlight.timeout="10"
upgrade.custom.server.url="http://10.10.10.254/ucs.xml"
/>
</PHONE_CONFIG>
Then you should see a custom config in the drop down.
Select Alternative File Configurations for overrides/$mac-phone.cfg
No OSS Endpoint Manager No Problem
Dump the latest and greatest firmware from here into the ftp folder /var/ftp/sip/ or web folder /var/www/html/firmware/. The dhcp option 160 points to the ftp for firmware, refer back to the virtual router documentation for that, pointing to usc.xml uses the web folder for updating firmware.
cd /var/ftp/sip
http://support.polycom.com/content/support/North_America/USA/en/support/voice/soundpoint_ip/soundpoint_ip670.html
Grab Polycom UC Software 4.0.12 for VVX Business Media Phones and SoundStructure [Split] or newer.
sudo wget http://downloads.polycom.com/voice/voip/uc/Polycom-UC-Software-4-0-12-rts12-release-sig-split.zip
unzip Polycom-UC-Software-4-0-12-rts12-release-sig-split.zip
There’s some sample backgrounds and ringtones in this package as well as the firmware.
Note: Polycom sets look in the sip.var file for the version number to update to.
If you don’t want to deal with OSS Endpoint, just toss this configuration file in your ftp folder.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<PHONE_CONFIG>
<PHONE_LOCAL
bg.hiRes.color.selection="3,6"
feature.urlDialing.enabled="0"
np.normal.ringing.calls.tonePattern="ringer15"
tcpIpApp.sntp.address="10.0.3.1"
tcpIpApp.sntp.gmtOffset="-18000"
up.backlight.onIntensity="0"
up.backlight.timeout="5"
upgrade.custom.server.url="http://10.0.3.254/ucs.xml"
bg.hiRes.color.bm.6.name="BravestWarrior.jpg"
msg.mwi.1.callBack="*97"
msg.mwi.1.callBackMode="contact"
msg.mwi.1.subscribe="701"
reg.1.address="701"
reg.1.auth.userId="701"
reg.1.displayName="Den 701"
reg.1.label="701"
reg.1.auth.password="GenericPlebz&lotPassword01"
saf.1="ALongTimeAgo8.wav"
saf.2="Warble.wav"
saf.3="SoundPointIPWelcome.wav"
saf.4="LoudRing.wav"
voIpProt.server.1.address="10.0.3.254"
voIpProt.server.1.expires="600"
/>
</PHONE_CONFIG>
Custom Backgrounds
Install image manipulation tool imagemagick.
yum install imagemagick
Create FTP directory if not already made.
cd /var/ftp/sip
mogrify -resize 50% *.jpg # keep image aspect ratio mogrify -resize 320x160 *.jpg # keep image aspect ratio mogrify -resize 320x160! *.jpg # don’t keep image aspect ratio mogrify -resize x160 *.jpg # don’t keep image aspect ratio mogrify -resize 320x *.jpg # don’t keep image aspect ratio
mogrify -resize 320x160! *.jpg
chown asterisk:asterisk *.jpg
Polycom phones do not support progressive or multiscan JPEG images. Phones running SIP 3.2.x or earlier cannot display JPEG images with .jpe or .jfif extensions. To use this type of image, change the extension to .jpg.
SoundPoint IP 550, 560, 650, and 670 320 x 160 pixels
SoundPoint IP 550, 560, 650, and 670 only support jpg & bmp not png.
Larger images will be cropped smaller images will be centered with a colour background.
Phone model Optimal idle display Image Size (In Pixels) Color Depth
SoundPoint IP 32x/33x 87 x 11 pixels monochrome (1-bit)
SoundPoint IP 430 94 x 23 pixels monochrome
SoundPoint IP 450 170 x 73 pixels 4-bit grayscale or monochrome
SoundPoint IP 550/560/650 213 x 111 pixels 4-bit grayscale or monochrome
SoundPoint IP 670 213 x 111 pixels 12-bit color
SoundStation IP 5000/6000 240 x 32 pixels 32-bit grayscale or monochrome
SoundStation IP 7000 255 x 75 pixels 32-bit grayscale or monochrome
All phones on a network will use the 000000000000.cfg master configuration file
unless the
sudo nano /var/ftp/sip/000000000000.cfg
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<PHONE_CONFIG>
<PHONE_LOCAL
up.backlight.onIntensity="0"
up.backlight.timeout="5"
bg.hiRes.color.selection="3,6"
bg.hiRes.color.bm.6.name="BravestWarrior.jpg"
/>
</PHONE_CONFIG>
This turns the phones backlight off and timesout at 5 seconds, Sets the default background to slot 6 which slot 6 is defined to BravestWarrior.jpg.
Custom Audio (Ringtones)
You can add custom ringtones to your phone, and you can apply custom ringtones to specific contacts or phone lines. The phones support the following .wav file formats: G.711u-law, G.711a-law, G.722, G.729AB, Lin16, and iLBC.
Audio files should have a .wav extension name. It will be stored in the phone’s flash memory and a copy will be made to the provisioning server. If you select a URL, the phone will download the audio file from that URL. You can save a maximum of 24 audio files or until the phone runs out of memory.
You can set a custom ringtone as the welcome sound in the Welcome Sound drop down box and for incoming calls using the Ring Type drop down box. To apply custom ringtones to specific contacts, on your phone, go to Menu > Features > Contact Directory, select a contact, press the Edit soft key, and choose Ring Type.
To apply a custom ringtone to a line, on your phone, go to Utilities > Soft Key & Line Key Configuration, select the line you wish to apply the custom ringtone to, and choose a ringtone type using the Edit Speed Dial Contact options.
Note: If you configure an unsupported audio file, the phone will use the default ringtone.
For ringtones it seems to work well when using ftp. You can edit the ipmid.conf sampled_audio section as follows: <sampled_audio saf.1=”” saf.2=”ringtone/ringtone1.wav” . . .
Documents state you should use the following formats: “mono 8 kHz G.711 A-Law L16/160008 (16-bit, 16 kHz sampling rate, mono)
To get the file format correct, use SOX:
sox original1.wav -V AlongTimeAgo.wav -e mu-law -c1 -t .wav -r 8000 -U /var/ftp/sip/ALongTimeAgo8.wav resample
cp AlongTimeAgo.wav /var/ftp/sip/
chown asterisk:asterisk /var/ftp/sip/AlongTimeAgo.wav
Sample ringtone config.
sudo nano /var/ftp/sip/000000000000.cfg
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<PHONE_CONFIG>
<PHONE_LOCAL
np.normal.ringing.calls.tonePattern="ringer15"
saf.1=""
saf.2="ALongTimeAgo8.wav"
saf.3="Warble.wav"
saf.4="SoundPointIPWelcome.wav"
saf.5="LoudRing.wav"
/>
</PHONE_CONFIG>
Note: saf.1=”” seems to overlap with existing tone 14 and won’t upload to phone?…
This says choose ringer 15th in the list where the custom ringtones start to be the default ringtone.
Note: Increase your logging level to see if there are errors on the audio file format.
Trim can trim off and shorten audio from the audio file to make a suitable ring tone sized sample.
Syntax : sox old.wav new.wav trim [SECOND TO START] [SECONDS DURATION].
SECOND TO START – Starting point in the voice file. SECONDS DURATION – Duration of voice file to remove.
The command below will extract first 10 seconds from input.wav and stored it in output.wav.
sox input.wav output.wav trim 0 10
If you want to convert an MP3 with sox for a ringtone you have to rebuild it with MP3 support.
Installing SoX with MP3 Support on Scientific Linux or how to fix error: sox formats: no handler for file extension “mp3”.
Default SoX installation from yum doesn’t have mp3 handler:
AUDIO FILE FORMATS: 8svx aif aifc aiff aiffc al amb au avr caf cdda cdr cvs cvsd dat dvms f4 f8 fap flac fssd gsm hcom htk ima ircam la lpc lpc10 lu mat mat4 mat5 maud nist ogg paf prc pvf raw s1 s2 s3 s4 sb sd2 sds sf sl smp snd sndfile sndr sndt sou sox sph sw txw u1 u2 u3 u4 ub ul uw vms voc vorbis vox w64 wav wavpcm wv wve xa xi
PLAYLIST FORMATS: m3u pls
AUDIO DEVICE DRIVERS: alsa ao oss ossdsp
If you already have SoX installed form yum you need remove it:
# yum remove sox
You will need to install the rpmforge repo.
Then install gcc-c++ libmad libmad-devel libid3tag libid3tag-devel lame lame-devel flac-devel libvorbis-devel packages:
# yum install gcc-c++ libmad libmad-devel libid3tag libid3tag-devel lame lame-devel flac-devel libvorbis-devel
Create /usr/local/src/SoX directory, download, extract sox from sources:
# mkdir /usr/local/src/SoX
# cd /usr/local/src/SoX/
# wget http://softlayer-dal.dl.sourceforge.net/project/sox/sox/14.4.2/sox-14.4.2.tar.gz
# tar xvfz sox-14.4.2.tar.gz
# cd sox-14.4.2
# ./configure
After running ./configure you should see in output:
OPTIONAL FILE FORMATS
amrnb.....................no
amrwb.....................no
flac......................yes
gsm.......................yes (in-tree)
lpc10.....................yes (in-tree)
mp2/mp3...................yes
id3tag....................yes
lame......................yes
lame id3tag...............yes
dlopen lame...............no
mad.......................yes
dlopen mad................no
twolame...................no
oggvorbis.................yes
opus......................no
sndfile...................no
wavpack...................no
Finlay run:
# make -s
# make install
That’s it. Now your new compiled sox with mp3 support in /usr/local/bin/ folder.
You can add /usr/local/sbin to the PATH:
# export PATH=$PATH:/usr/local/bin
Google Voice Trunk
I’ve tried 3 ways here and only the first way worked.
Way 1 - Less Secure Worked
Less secure apps https://myaccount.google.com/lesssecureapps
Turn ON Allow less secure apps.
Allow less secure apps: ON
Some apps and devices use less secure sign-in technology, which could leave your account vulnerable. You can turn off access for these apps (which we recommend) or choose to use them despite the risks.
Setup a Google Voice Account.
IMPORTANT: Be sure to enable the Google Chat option as one of your phone destinations in Settings, Voice Setting, Phones. That’s the destination we need for The Incredible PBX to work its magic! Otherwise, all inbound and outbound calls will fail. If you don’t see this option, you may need to call up Gmail and enable Google Chat there first. Then go back to the Google Voice Settings.
While you’re still in Google Voice Settings, click on the Calls tab. Make sure your settings match these:
Click the menu at the left and then click Legacy Google Voice to see these exact options other wise guess at the new options, basically all there.
Legacy Google Voice
Call Screening – OFF
Call Presentation – OFF
Caller ID (In) – Display Caller’s Number
Caller ID (Out) – Don’t Change Anything
Do Not Disturb – OFF
Call Options (Enable Recording) – OFF
Global Spam Filtering – ON
Current Google Voice
Can't find options for Call Presentaion, Caller ID (In), Caller ID (Out)
Phone numbers
Do not disurb
Turn off message forwarding and send calls to voicemail - Off
Calls
Screen Calls
Hear a caller's name when you pick up - Off
Incoming call options
Record call (4), Switch linked phone (*), Start conference call (5) - Off
Security
Filter spam
Calls, messages, and voicemail - On
Legacy
Click Save Changes once you adjust your settings. Under the Voicemail tab, plug in your email address so you get notified of new voicemails.
Current
Voicemail
Get voicemail via email
someone@gmail.com - On
Down the road, receipt of a Google Voice voicemail will be a big hint that something has come unglued on your PBX.
One final word of caution is in order regardless of your choice of providers: Do NOT use special characters in any provider passwords, or nothing will work!
Now you’re ready to set up your Google Voice trunk in FreePBX. After logging into FreePBX with your browser, click the Connectivity tab and choose Google Voice/Motif. To Add a new Google Voice account, just fill out the form. Do NOT check the third box or incoming calls will never ring!
Google Voice [Motif]
Typical Settings
Google Voice Username: blah@gmail.com
Google Voice Password: blahbers1010
Google Voice Phone Number: 9361234567
Add Trunk: X
Add Outbound Routes: X
Send Unanswered to GoogleVoice Voicemail: Not Checked
Advanced Settings
None At This Time
Submit
Click Submit.
IMPORTANT LAST STEP: Google Voice will not work unless you restart Asterisk from the Linux command line at this juncture. Using SSH, log into your server as root and issue the following command.
amportal restart.
If you have trouble getting Google Voice to work (especially if you have previously used your Google Voice account from a different IP address), try this Google Voice Reset Procedure. It usually fixes connectivity problems. If it still doesn’t work, enable Less Secure Apps using this Google tool https://www.google.com/settings/security/lesssecureapps
Way 2 - Google OAUTH Script
Go to Google Developer Console and register a new project.
In the top menu bar there is a down arrow to create more projects, click it.
||| Google APIs V <=== Dropdown
Click the + at the right.
Or click this link New Project
New Project
You have 10 projects remaining in your quota. Learn more.
Project name
My Project
Your project ID will be random-name-xxxxxx Edit
Create Cancel
Choose a name for your project and click Create button.
Click Credentials on left then click “Create credentials” on the right.
Click OAuth client ID
Requests user consent so your app can access the user's data
To create an OAuth client ID, you must first set a product name on the consent screen Button
Click the button.
Product name shown to users
SomeCreativeName
Click Save.
Click “Other” for Application type.
Name
AnotherCreativeName
You will now have your OAuth client ID and client secret.
Here is your client ID
<clientID>
Here is your client secret
<Secret>
Copy client ID and Client Secret. Replace in script the below.
Run the script with init option and when prompted for code, switch to a web browser and paste the link in clipboard, copy code and paste back in console.
Script uses xclip to copy url in into copy/paste buffer (Not actually required, will just complain).
yum install xclip
Run script.
sh gistfile1.sh init
https://accounts.google.com/ServiceLogin?passive=...etc
It will hopefully spit out a large URL, paste it into your web browser of choice.
Google
AnotherCreativeNameGV would like to:
View your email address Click for more information
More info View your basic profile info Click for more information
More info View and send chat messages Click for more information
By clicking Allow, you allow this app and Google to use your information in accordance with their respective terms of service and privacy policies. You can change this and other Account Permissions at any time.
Deny Allow
Click Allow.
Please copy this code, switch to your application and paste it there:
<KEY>
Copy the key from the web browser and paste it into the console.
Code? <KEY>
Done
Client refresh token will be saved in .gvauth folder. Use this refresh token as your google voice password in Asterisk.
cat /root/.gvauth/default.refresh_token
<refreshtoken>
Copy refresh token and paste it in your Motif field called refresh token in Google Voice PIAF GUI settings.
Click Connectivity ==> Google Voice (Motif).
Google Voice [Motif]
Typical Settings
Google Voice Username: blah@gmail.com
Google Voice Refresh Token: <refreshtoken>
Google Voice Phone Number: 9361234567
Add Trunk: X
Add Outbound Routes: X
Send Unanswered to GoogleVoice Voicemail: Not Checked
Advanced Settings
None At This Time
Submit
Click your account made on the right.
Error: This module requires Asterisk chan_motif & res_xmpp to be installed and loaded
Go to the VoIP Server console and type.
amportal restart
Way 3 Google OAUTH No Script
Go to Google Developer Console and register a new project.
In the top menu bar there is a down arrow to create more projects, click it.
||| Google APIs V <=== Dropdown
Click the + at the right.
Or click this link New Project
New Project
You have 10 projects remaining in your quota. Learn more.
Project name
My Project
Your project ID will be random-name-xxxxxx Edit
Create Cancel
Choose a name for your project and click Create button.
Click Credentials on left then click “Create credentials” on the right.
Click OAuth client ID
Requests user consent so your app can access the user's data
To create an OAuth client ID, you must first set a product name on the consent screen. Button
Click the button.
Product name shown to users
SomeCreativeName
Click Save.
Click “Web application” for Application type.
Name
AnotherCreativeName
Authorized JavaScript origins
For use with requests from a browser. This is the origin URI of the client application. It can't contain a wildcard (http://*.example.com) or a path (http://example.com/subdir). If you're using a nonstandard port, you must include it in the origin URI.
Leave blank...
Authorized redirect URIs
For use with requests from a web server. This is the path in your application that users are redirected to after they have authenticated with Google. The path will be appended with the authorization code for access. Must have a protocol. Cannot contain URL fragments or relative paths. Cannot be a public IP address.
https://developers.google.com/oauthplayground
You will now have your OAuth client ID and client secret.
Here is your client ID
<clientID>
Here is your client secret
<Secret>
Copy client ID and Client Secret.
Copy client ID and Client Secret. Replace in script the below.
Go to this site Google Devoloper OAuth 2.0 Playground
Top right click the Gear icon.
OAuth 2.0 configuration
OAuth flow: Server-side
OAuth endpoints: Google
Authorization endpoint: https://accounts.google.com/o/oauth2/v2/auth
Token endpoint: https://www.googleapis.com/oauth2/v4/token
Access token location: Authorization header w/ Bearer prefix
Access type: Offline
Force prompt: Consent Screen
(Check) Use your own OAuth credentials
You will need to list the URL https://developers.google.com/oauthplayground as a valid redirect URI in your Google APIs Console's project. Then enter the client ID and secret assigned to a web application on your project below:
OAuth Client ID: <Client ID we got from the last step>.apps.googleusercontent.com
OAuth Client secret: <Client secret we got from the last step>
Note: Your credentials will be sent to our server as we need to proxy the request. Your credentials will not be logged.
Close
After entering the Client ID and Client secret.
Click close.
At the left hand menu…
Step 1 Select & authorize APIs
Step 1 Select & authorize APIs
Select the scope for the APIs you would like to access or input your own OAuth scopes below. Then click the "Authorize APIs" button.
Input your own scopes: https://www.googleapis.com/auth/googletalk Auhorize APIs
Do not pick anything from the list click on the entry box at the bottom of the list and type.
https://www.googleapis.com/auth/googletalk
Click “Authorize APIs” button.
Google
Choose an account
to continue to SomeCreativeNameApp
someone@gmail.com
Use another account
Click your google voice account email address under Choose an account or type it in with “Use another account”.
Google
Hi someone
someone@gmail.com
SomeCreativeNameApp wants to
View and send chat messages
Allow SomeCreativeNameApp to do this?
By clicking Allow, you allow this app to use your information in accordance to their terms of service and privacy policies. You can remove this or any other app connected to your account in My Account
Cancel Allow
Click Allow.
Now Step 2 Loads.
Step 2 Exchange authorization code for tokens
Step 2 Exchange authorization code for tokens
Once you got the Authorization Code from Step 1 click the Exchange authorization code for tokens button, you will get a refresh and an access token which is required to access OAuth protected resources.
Authorization code: <Auth Code Key>
Exchange authorization code for tokens
Refresh token: Refresh token
Access token: Access token
Refresh access token
(Unchecked) Auto-refresh the token before it expires.
The access token will expire in seconds.
The access token has expired.
Note: The OAuth Playground does not store refresh tokens, but as refresh tokens never expire, user should go to their Google Account Authorized Access page if they would like to manually revoke them.
Click “Exchange authorization code for tokens”.
Step 2 will generate some numbers and collapse, open up Step 2 again and copy the Refresh token.
Refresh token: <RefreshToken>
Access token: <AccessToken>
(Unchecked) Auto-refresh the token before it expires.
The access token will expire in 3236 seconds.
Note: The OAuth Playground does not store refresh tokens, but as refresh tokens never expire, user should go to their Google Account Authorized Access page if they would like to manually revoke them.
Copy refresh token and paste it in your Motif field called refresh token in Google Voice PIAF GUI settings.
Note: If you only have a password field you probably didn’t choose OAuth2 when you installed PIAF.
Click Connectivity ==> Google Voice (Motif)
Google Voice [Motif]
Typical Settings
Google Voice Username: blah@gmail.com
Google Voice Refresh Token: <refreshtoken>
Google Voice Phone Number: 9361234567
Add Trunk: X
Add Outbound Routes: X
Send Unanswered to GoogleVoice Voicemail: Not Checked
Advanced Settings
None At This Time
Submit
Click your account made on the right.
Error: This module requires Asterisk chan_motif & res_xmpp to be installed and loaded
Go to the VoIP Server console and type.
amportal restart
Note: I have yet to get OAuth2 methods working. Good Luck!
Error for OAuth2 Methods
[2017-06-30 00:09:54] NOTICE[9606]: res_xmpp.c:3890 fetch_access_token: access Token : (null)
[2017-06-30 00:09:54] WARNING[9606]: res_xmpp.c:3766 xmpp_client_receive: Parsing failure: Hook returned an error.
[2017-06-30 00:09:54] WARNING[9606]: res_xmpp.c:3763 xmpp_client_receive: Parsing failure: Invalid XML.
[2017-06-30 00:09:54] WARNING[9606]: res_xmpp.c:3830 xmpp_client_thread: JABBER: socket read error
[2017-06-30 00:09:54] NOTICE[9606]: res_xmpp.c:3639 xmpp_client_reconnect: Connecting to client token : <RefreshTokenHere>
[2017-06-30 00:09:54] NOTICE[9606]: res_xmpp.c:3877 fetch_access_token: Command CURL(https://www.googleapis.com/oauth2/v3/token,client_id=<ClientIDhere>.apps.googleusercontent.com&client_secret=<SecretHere>&refresh_token=<RefreshTokenHere>&grant_type=refresh_token)
[2017-06-30 00:09:54] NOTICE[9606]: res_xmpp.c:3881 fetch_access_token: Command status : {
"error": "unauthorized_client",
"error_description": "Unauthorized"
}
Google Voice Inbound Routes
Click Connectivity => Inbound Routes.
Click Add Incoming Route.
Route: CatchAll
Add Incoming Route
Description: CatchAll
DID Number:
CallerID Number:
CID Priority Route:
Options
Alert Info:
CID name prefix:
Music On Hold: Default
Signal RINGING:
Reject Reverse Charges:
Pause Before Answer:
Privacy
Privacy Manager: No
Call Recording
Note that the meaning of these options has changed. Please read the wiki for futher information on these changes.
Call Recording: Don't Care
Fax Detect
Detect Faxes: No
Set Destination
Ring Groups
Ring All Phones <600>
Submit Clear Destination & Submit
Google Voice Outbound Routes
Click Connectivity => Outbound Routes.
You should see the google trunk here we made earlier that’s all we need.
usergmailcom etc...
CID Superfecta
Admin => Module Admin.
Click CID Superfecta.
CID Superfecta 2.11.17 Stable POSSA GPLv2+ Enabled
Info
Changelog
Publisher: POSSA
License: GPLv2+
Description: CID Superfecta for FreePBX
More info: https://github.com/POSSA/Caller-ID-Superfecta
Track: Stable
Action: No Action Enable Uninstall Remove
Click Enable.
Click Process.
Module Administration
Please confirm the following actions:
Upgrades, installs, enables and disables:
CID Superfecta 2.11.17 will be enabled
Confirm Cancel
Click Confirm.
Status
close
Please wait while module actions are performed
Enabling superfecta
superfecta enabled successfully
Return
Click Return.
Click Apply Config.
Click Admin => CID Superfecta.
Click Default.
Play with options.
Note: Some of these cause massive long delays for the people calling you, to a point where they think they didn’t call the right number.
CID Superfecta KODI Notification
Click Admin => CID Superfecta.
Click Default.
Click Send To KODI or XBMC.
Send to KODI
Hosts? 10.20.30.35
Port? 8080
UserName? osmc
PassWord? osmc
Mode? Json RPC: For XBMC v12(Frodo), KODI v13 and up.
Change Volume?
Pause PlayBack? (Check)
Notification Time? 20
Format Incoming Number? (132) 456-7890
In KODI make sure webserver IP is right, enabled and set to port 8080 with the right username/password.
Troubleshooting
You have 72 tampered files
You have 72 tampered files
Module: "Incredible PBX GUI", File: "/var/www/html/admin/modules/incrediblepbx/agi-bin/parkfetch.agi missing"
Module: "Incredible PBX GUI", File: "/var/www/html/admin/modules/incrediblepbx/agi-bin/parkuser.php missing"
Module: "Incredible PBX GUI", File: "/var/www/html/admin/modules/incrediblepbx/assets/css/parking.css missing"
Module: "Incredible PBX GUI", File: "/var/www/html/admin/modules/incrediblepbx/assets/js/jquery.numeric.js missing"
Module: "Incredible PBX GUI", File: "/var/www/html/admin/modules/incrediblepbx/assets/js/park.js missing"
Module: "Incredible PBX GUI", File: "/var/www/html/admin/modules/incrediblepbx/functions.inc/dialplan.php missing"
Module: "Incredible PBX GUI", File: "/var/www/html/admin/modules/incrediblepbx/functions.inc/geters_seters.php missing"
Module: "Incredible PBX GUI", File: "/var/www/html/admin/modules/incrediblepbx/functions.inc/registries.php missing"
Module: "Incredible PBX GUI", File: "/var/www/html/admin/modules/incrediblepbx/functions.inc.php altered"
Module: "Incredible PBX GUI", File: "/var/www/html/admin/modules/incrediblepbx/install.php altered"
Module: "Incredible PBX GUI", File: "/var/www/html/admin/modules/incrediblepbx/LICENSE missing"
Module: "Incredible PBX GUI", File: "/var/www/html/admin/modules/incrediblepbx/module.xml altered"
Module: "Incredible PBX GUI", File: "/var/www/html/admin/modules/incrediblepbx/page.parking.php missing"
Module: "Incredible PBX GUI", File: "/var/www/html/admin/modules/incrediblepbx/Parking.class.php missing"
Module: "Incredible PBX GUI", File: "/var/www/html/admin/modules/incrediblepbx/uninstall.php altered"
Module: "Incredible PBX GUI", File: "/var/www/html/admin/modules/incrediblepbx/views/header.php missing"
Module: "Incredible PBX GUI", File: "/var/www/html/admin/modules/incrediblepbx/views/lot.php missing"
Module: "Incredible PBX GUI", File: "/var/www/html/admin/modules/incrediblepbx/views/overview.php missing"
Module: "ConfigEdit", File: "/var/www/html/admin/modules/configedit/agi-bin/parkfetch.agi missing"
Module: "ConfigEdit", File: "/var/www/html/admin/modules/configedit/agi-bin/parkuser.php missing"
Module: "ConfigEdit", File: "/var/www/html/admin/modules/configedit/assets/css/parking.css missing"
Module: "ConfigEdit", File: "/var/www/html/admin/modules/configedit/assets/js/jquery.numeric.js missing"
Module: "ConfigEdit", File: "/var/www/html/admin/modules/configedit/assets/js/park.js missing"
Module: "ConfigEdit", File: "/var/www/html/admin/modules/configedit/functions.inc/dialplan.php missing"
Module: "ConfigEdit", File: "/var/www/html/admin/modules/configedit/functions.inc/geters_seters.php missing"
Module: "ConfigEdit", File: "/var/www/html/admin/modules/configedit/functions.inc/registries.php missing"
Module: "ConfigEdit", File: "/var/www/html/admin/modules/configedit/functions.inc.php missing"
Module: "ConfigEdit", File: "/var/www/html/admin/modules/configedit/install.php missing"
Module: "ConfigEdit", File: "/var/www/html/admin/modules/configedit/LICENSE missing"
Module: "ConfigEdit", File: "/var/www/html/admin/modules/configedit/module.xml altered"
Module: "ConfigEdit", File: "/var/www/html/admin/modules/configedit/page.parking.php missing"
Module: "ConfigEdit", File: "/var/www/html/admin/modules/configedit/Parking.class.php missing"
Module: "ConfigEdit", File: "/var/www/html/admin/modules/configedit/uninstall.php missing"
Module: "ConfigEdit", File: "/var/www/html/admin/modules/configedit/views/header.php missing"
Module: "ConfigEdit", File: "/var/www/html/admin/modules/configedit/views/lot.php missing"
Module: "ConfigEdit", File: "/var/www/html/admin/modules/configedit/views/overview.php missing"
Module: "phpMyAdmin", File: "/var/www/html/admin/modules/phpmyadmin/agi-bin/parkfetch.agi missing"
Module: "phpMyAdmin", File: "/var/www/html/admin/modules/phpmyadmin/agi-bin/parkuser.php missing"
Module: "phpMyAdmin", File: "/var/www/html/admin/modules/phpmyadmin/assets/css/parking.css missing"
Module: "phpMyAdmin", File: "/var/www/html/admin/modules/phpmyadmin/assets/js/jquery.numeric.js missing"
Module: "phpMyAdmin", File: "/var/www/html/admin/modules/phpmyadmin/assets/js/park.js missing"
Module: "phpMyAdmin", File: "/var/www/html/admin/modules/phpmyadmin/functions.inc/dialplan.php missing"
Module: "phpMyAdmin", File: "/var/www/html/admin/modules/phpmyadmin/functions.inc/geters_seters.php missing"
Module: "phpMyAdmin", File: "/var/www/html/admin/modules/phpmyadmin/functions.inc/registries.php missing"
Module: "phpMyAdmin", File: "/var/www/html/admin/modules/phpmyadmin/functions.inc.php missing"
Module: "phpMyAdmin", File: "/var/www/html/admin/modules/phpmyadmin/install.php missing"
Module: "phpMyAdmin", File: "/var/www/html/admin/modules/phpmyadmin/LICENSE missing"
Module: "phpMyAdmin", File: "/var/www/html/admin/modules/phpmyadmin/module.xml altered"
Module: "phpMyAdmin", File: "/var/www/html/admin/modules/phpmyadmin/page.parking.php missing"
Module: "phpMyAdmin", File: "/var/www/html/admin/modules/phpmyadmin/Parking.class.php missing"
Module: "phpMyAdmin", File: "/var/www/html/admin/modules/phpmyadmin/uninstall.php missing"
Module: "phpMyAdmin", File: "/var/www/html/admin/modules/phpmyadmin/views/header.php missing"
Module: "phpMyAdmin", File: "/var/www/html/admin/modules/phpmyadmin/views/lot.php missing"
Module: "phpMyAdmin", File: "/var/www/html/admin/modules/phpmyadmin/views/overview.php missing"
Module: "Sys Info", File: "/var/www/html/admin/modules/sysinfo/agi-bin/parkfetch.agi missing"
Module: "Sys Info", File: "/var/www/html/admin/modules/sysinfo/agi-bin/parkuser.php missing"
Module: "Sys Info", File: "/var/www/html/admin/modules/sysinfo/assets/css/parking.css missing"
Module: "Sys Info", File: "/var/www/html/admin/modules/sysinfo/assets/js/jquery.numeric.js missing"
Module: "Sys Info", File: "/var/www/html/admin/modules/sysinfo/assets/js/park.js missing"
Module: "Sys Info", File: "/var/www/html/admin/modules/sysinfo/functions.inc/dialplan.php missing"
Module: "Sys Info", File: "/var/www/html/admin/modules/sysinfo/functions.inc/geters_seters.php missing"
Module: "Sys Info", File: "/var/www/html/admin/modules/sysinfo/functions.inc/registries.php missing"
Module: "Sys Info", File: "/var/www/html/admin/modules/sysinfo/functions.inc.php missing"
Module: "Sys Info", File: "/var/www/html/admin/modules/sysinfo/install.php missing"
Module: "Sys Info", File: "/var/www/html/admin/modules/sysinfo/LICENSE missing"
Module: "Sys Info", File: "/var/www/html/admin/modules/sysinfo/module.xml altered"
Module: "Sys Info", File: "/var/www/html/admin/modules/sysinfo/page.parking.php missing"
Module: "Sys Info", File: "/var/www/html/admin/modules/sysinfo/Parking.class.php missing"
Module: "Sys Info", File: "/var/www/html/admin/modules/sysinfo/uninstall.php missing"
Module: "Sys Info", File: "/var/www/html/admin/modules/sysinfo/views/header.php missing"
Module: "Sys Info", File: "/var/www/html/admin/modules/sysinfo/views/lot.php missing"
Module: "Sys Info", File: "/var/www/html/admin/modules/sysinfo/views/overview.php missing"
On the console run gui-fix in the root scripts folder.
root@voipserv:~ $ mkdir -p /var/www/manual/images
root@voipserv:~ $ mkdir -p /var/www/html/admin/modules/framework/amp_conf/htdocs/admin/images
root@voipserv:~ $ gui-fix
Please wait...
SETTING FILE PERMISSIONS.................Done
Removing any dangling symlinks
Dangling symlinks removed
Please wait...
Getting Data from Online Server...Done
Checking Signatures of Modules...
Checking announcement...Good
Checking arimanager...Good
Checking asterisk-cli...Good
Checking asteriskinfo...Good
Checking backup...Good
Checking blacklist...Good
Checking builtin...Good
Checking callforward...Good
Checking callrecording...Good
Checking callwaiting...Good
Checking campon...Good
Checking cdr...Good
Checking certman...Good
Checking cidlookup...Good
Checking configedit...Signature Invalid
Could not find signed module on remote server!
Checking contactmanager...Good
Checking core...Good
Checking customappsreg...Good
Checking dashboard...Good
Checking daynight...Good
Checking digium_phones...Good
Checking digiumaddoninstaller...Good
Checking directory...Good
Checking disa...Good
Checking donotdisturb...Good
Checking endpointman...Good
Checking fax...Good
Checking featurecodeadmin...Good
Checking findmefollow...Good
Checking framework...Good
Checking hotelwakeup...Good
Checking iaxsettings...Good
Checking incrediblepbx...Signature Invalid
Could not find signed module on remote server!
Checking infoservices...Good
Checking ivr...Good
Checking logfiles...Good
Checking manager...Good
Checking miscapps...Good
Checking miscdests...Good
Checking motif...Good
Checking music...Good
Checking outroutemsg...Good
Checking paging...Good
Checking parking...Good
Checking pbdirectory...Good
Checking phonebook...Good
Checking phpagiconf...Good
Checking phpinfo...Good
Checking phpmyadmin...Signature Invalid
Could not find signed module on remote server!
Checking pinsets...Good
Checking presencestate...Good
Checking printextensions...Good
Checking queues...Good
Checking recordings...Good
Checking ringgroups...Good
Checking setcid...Good
Checking sipsettings...Good
Checking speeddial...Good
Checking superfecta...Good
Checking sysinfo...Signature Invalid
Could not find signed module on remote server!
Checking timeconditions...Good
Checking ucp...Good
Checking userman...Good
Checking vmblast...Good
Checking voicemail...Good
Checking weakpasswords...Good
Checking webrtc...Good
Done
SETTING FILE PERMISSIONS.................Done
Removing any dangling symlinks
Dangling symlinks removed
trying to run as user asterisk:
[SIGNATURECHECK] already set to [0]
Please wait...
Successfully reloaded
Please wait...
KILLING AMP PROCESSES
mpg123: no process found
Usage:
kill [options] <pid|name> [...]
Options:
-a, --all do not restrict the name-to-pid conversion to processes
with the same uid as the present process
-s, --signal <sig> send specified signal
-q, --queue <sig> use sigqueue(2) rather than kill(2)
-p, --pid print pids without signaling them
-l, --list [=<signal>] list signal names, or convert one to a name
-L, --table list signal names and numbers
-h, --help display this help and exit
-V, --version output version information and exit
For more details see kill(1).
op_server.pl: no process found
Please wait...
SETTING FILE PERMISSIONS.................Done
Removing any dangling symlinks
Dangling symlinks removed
STARTING ASTERISK
Asterisk Started
trying to run as user asterisk:
[SIGNATURECHECK] already set to [0]
Please wait...
Successfully reloaded
Extras
ZoIP - Zork game server for asterisk.
Next Part
Continue to Part 06 - Automation Server