Skip to main content

voIP adoption - part 1

Sure, we know all about voIP. We read the news and about how telecommunications is going to change. Apart from some phone card services and the alternate IDD line that use internet gateways, how else has voIP changed our lives.

About one year ago, I was trying to get my friends and family to install skype. Some finally did and still run it faithfully while others still plainly refuse. Now, I'm trying to get these people not to use skype but use a SIP capable internet phone instead. I was never quite happy with the limitation of skype not being transferable between other voIP services, but the plain simplicity of the installation and use was great for the people you had to talk to on the other end.

The process of making the switch will probably be gradual, but how do I make sure everyone is on the same system for interoperability? My solution would be to pick the protocol and not the application and SIP naturally comes to mine. Although SIP has been out for a while now, I still think it hasn't totally caught on as yet. Although I hope it would as mentioned in this article.

For a new system that everyone including my grandmother can use, there has to be no complications and very intuitive to be able to use by all skill levels.

I've identified there are 2 methods:

1. Mostly try to use the phone
2. User is able to select most preferable application

To be able to do this, some hardware is required.

Full setup: FXO/FXS interface, POTS line and telephone, dedicated server, internet connection
Half setup: FXO/FXS interface, POTS line and telephone, optional computer, internet connection
Computer setup: computer, internet connection, microphone

As most people already have more than half of the list, just getting the FXO/FXS interface would be the only thing left, if not a computer setup can be used for voIP calls.

Naturally to start things off, I decided to get myself one to figure out how it all works and since last year, I've been banging my head agaist the wall with my asterisk development kit only to find out I had a faulty set. Well, I just decided to put that aside for now and got a Sipura SPA-3000. After configuring my brand new spa-3000, I was rather excited that I could set it to ring my house phone when my freeworlddialup SIP number was called over the internet and get redirected if there was no answer.

The next challenge will be to do more intelligent routing to PSTN numbers and SIP numbers and to get my dial plan right. *sigh*. Is this ROI justifiable? Well, i do hope so. I'm sure it might be easier to just use a subscriber service, but just think of the satisfaction of dialing 9 first for an outside line? Maybe and maybe not.

Will provide a more detailed update as I progress.

Comments

Popular posts from this blog

Multiple Broadlink RM mini 3 integration using MQTT

Broadlink now has quite a lot of integration options almost out of the box. If you enable Broadlink IHC, you can directly link it to Alexa by giving the device a unique name.

There is a homebridge plug in for homekit integration but I haven't tried or tested this. https://lprhodes.github.io/slate/

I wanted to put the device in domoticz so I can have more control over what can trigger my broadlink. I decided to use broadlink-mqtt for this, which is a fairly easy method to trigger from any source.

Setup Instructions for broadlink-mqtt

1. git clone https://github.com/eschava/broadlink-mqtt

2. vi /home/pi/broadlink-mqtt/mqtt.conf

3. Update the mqtt.conf file with the device type set as multiple_lookup

device_type = 'multiple_lookup'
mqtt_multiple_subprefix_format = '{type}_{mac_nic}/'
4. Start the python script and check that it started and detected all the RM devices.
Check the log file to see what the IP / MAC addresses are. DEBUG Connected to RM2 Broadlink device at …

Fibaro HCL Virtual Device Slider

How to setup Fibaro home center lite (HCL) slider for virtual devices.

As the Fibaro HCL does not support LUA. The question was how to update the number value of the slider to send to the HTTP string. Thanks to this site which is a really good reference https://www.vesternet.com/resources/application-notes/apnt-88/

The 2 use cases here are;

Sonos HTTP API Volume

To allow for volume control for all Sonos devices, add a virtual device with the IP address for SONOS HTTP API and specify the default port to 5005. Create Slider and put the following text into the string.

GET /volume/_sliderValue_ HTTP/1.10x0D0x0A0x0D0x0A


Domotiz Virtual Devices

GET /json.htm?type=command&param=switchlight&idx=XX&switchcmd=Set%20Level&level=_sliderValue_ HTTP/1.10x0D0x0A0x0D0x0A

Replace XX with the device ID.

Restart Fibaro HCL when it stops working automatically

It seems that the Fibaro HCL seems to hang every now and then. Instead of trying to restart it regularly, which doesn't really work, as it's almost impossible to predict when this will happen.

This method checks that the HCL is actually running and in the event it stops working, trigger a script that will restart it.


1. Get a non Fibaro controlled power plug and scripts to control it.

I used a wifi smart plug, TP-link HS100 and downloaded the scripts from

https://blog.georgovassilis.com/2016/05/07/controlling-the-tp-link-hs100-wi-fi-smart-plug/

2. Create a bash script to restart the Fibaro, e.g. restart_fibaro.sh

#!/bin/bash

ip_addr=
scripts=

$scripts/tplink-smartplug.py -t $ip_addr -c off
sleep 10
$scripts/tplink-smartplug.py -t $ip_addr -c on


3. Create a test global variable in the Fibaro HCL

Go to the variables panel and create a test variable, e.g. Test


4. Add a cron entry to test that the Fibaro API is still working and restart if it's not.

The cron script is scheduled ev…