Least cost routing
This page is a work in progress; it documents my efforts to hack up some sort of script-based Least Cost Routing arrangement on my N900.
Objective 1: pre-dialing
The first step is to get this working for regular PSTN access numbers over the GSM channel, so that I can use inclusive minutes rather than get charged through the nose for calling 0845, 0870 and suchlike.
In order to do that, I need to:
- intercept an outgoing GSM call, check dial string and see if we need to intervene
- if so, end the call, rewrite the number to suit, and autoredial before I the end user know or care about it
Looking at D-BUS, when we place a call via GSM we get:
================================= Arg 1: :1.20 Arg 2: null Arg 3: com.nokia.csd.Call Arg 4: CreateRequested Arg 5: +442081802828 ================================= Arg 1: :1.20 Arg 2: null Arg 3: com.nokia.csd.Call Arg 4: Created Arg 5: +442081802828 =================================
so, we can hook a script onto that using the following in dbus-scripts-settings
#:GSM Call Requested /opt/usr/bin/lcr * * com.nokia.csd.Call CreateRequested *
now, let's test that we can forcibly end the call before it happens:
#!/bin/sh echo "Least Cost Routing script: detected outgoing call to $5"; echo "Ending call to $5" dbus-send --system --print-reply --dest=com.nokia.csd.Call /com/nokia/csd/call com.nokia.csd.Call.Release