diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..1f4c718 --- /dev/null +++ b/.env.example @@ -0,0 +1,11 @@ +mqtt_broker=mqtt.example.com +mqtt_topic=yealink +mqtt_username=username #optional +mqtt_password=password #optional + +yealink_username=admin +yealink_password=admin +yealink_ip=192.0.137.7 + +enable_dial=false #Allow initiating a call via mqtt +enable_control=true #Allow pressing buttons on the phone via mqtt \ No newline at end of file diff --git a/001565c56961-local.cfg b/001565c56961-local.cfg deleted file mode 100644 index 8172580..0000000 --- a/001565c56961-local.cfg +++ /dev/null @@ -1,43 +0,0 @@ -#!version:1.0.0.1 -action_url.setup_completed = http://10.42.0.1/?event=setup_completed&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.log_on = http://10.42.0.1/?event=registered&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.log_off = http://10.42.0.1/?event=unregistered&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.register_failed = http://10.42.0.1/?event=register_failed&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.incoming_call = http://10.42.0.1/?event=incoming_call&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.off_hook = http://10.42.0.1/?event=off_hook&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.on_hook = http://10.42.0.1/?event=on_hook&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.outgoing_call = http://10.42.0.1/?event=outgoing_call&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.call_established = http://10.42.0.1/?event=call_established&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.call_terminated = http://10.42.0.1/?event=call_terminated&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.dnd_on = http://10.42.0.1/?event=dnd_on&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.dnd_off = http://10.42.0.1/?event=dnd_off&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.always_fwd_on = http://10.42.0.1/?event=always_fwd_on&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.always_fwd_off = http://10.42.0.1/?event=always_fwd_off&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.busy_fwd_on = http://10.42.0.1/?event=busy_fwd_on&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.busy_fwd_off = http://10.42.0.1/?event=busy_fwd_off&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.no_answer_fwd_on = http://10.42.0.1/?event=no_answer_fwd_on&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.no_answer_fwd_off = http://10.42.0.1/?event=no_answer_fwd_off&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.transfer_call = http://10.42.0.1/?event=transfer_call&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.blind_transfer_call = http://10.42.0.1/?event=blind_transfer_call&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.attended_transfer_call = http://10.42.0.1/?event=attended_transfer_call&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.hold = http://10.42.0.1/?event=hold&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.unhold = http://10.42.0.1/?event=unhold&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.mute = http://10.42.0.1/?event=mute&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.unmute = http://10.42.0.1/?event=unmute&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.missed_call = http://10.42.0.1/?event=unmute&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.ip_change = http://10.42.0.1/?event=ip_change&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.reject_incoming_call = http://10.42.0.1/?event=reject_incoming_call&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.answer_new_incoming_call = http://10.42.0.1/?event=answer_new_incoming_call&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.busy_to_idle = http://10.42.0.1/?event=busy_to_idle&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.idle_to_busy = http://10.42.0.1/?event=idle_to_busy&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.forward_incoming_call = http://10.42.0.1/?event=forward_incoming_call&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.transfer_finished = http://10.42.0.1/?event=transfer_finished&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.transfer_failed = http://10.42.0.1/?event=transfer_failed&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.setup_autop_finish = http://10.42.0.1/?event=setup_autop_finish&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.call_waiting_on = http://10.42.0.1/?event=call_waiting_on&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.call_waiting_off = http://10.42.0.1/?event=call_waiting_off&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.call_remote_canceled = http://10.42.0.1/?event=call_remote_canceled&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.cancel_callout = http://10.42.0.1/?event=cancel_callout&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.remote_busy = http://10.42.0.1/?event=remote_busy&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.headset = http://10.42.0.1/?event=headset&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber -action_url.handfree = http://10.42.0.1/?event=handfree&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber diff --git a/index.js b/index.js index 165f13c..90a11da 100644 --- a/index.js +++ b/index.js @@ -1,11 +1,13 @@ // Require the framework and instantiate it import axios from 'axios'; -let yealinkbaseurl = "http://10.42.0.186/cgi-bin/ConfigManApp.com" +import 'dotenv/config' + +let yealinkbaseurl = "http://"+process.env.yealink_ip+"/cgi-bin/ConfigManApp.com" function send_request(params) { axios.get(yealinkbaseurl, { auth: { - username: "admin", - password: "admin" + username: process.env.yealink_username, + password: process.env.yealink_password }, params: params, // Query parameters }) @@ -13,28 +15,39 @@ function send_request(params) { // ESM import Fastify from 'fastify' -const fastify = Fastify({ - logger: true -}) - +const fastify = Fastify() +console.log(process.env.mqtt_broker) import mqtt from 'mqtt'; -const client = mqtt.connect("mqtt://127.0.0.1"); - -client.on("connect", () => { - client.subscribe("bitlair/telefoon/dial", (err) => { - }); - client.subscribe("bitlair/telefoon/key", (err) => { - }); +const client = mqtt.connect({ + host: process.env.mqtt_broker, + port: 1883, + username: process.env.mqtt_username, + password: process.env.mqtt_password, + reconnectPeriod: 5000, }); +client.on("connect", () => { + console.log("Connected to broker") + if (process.env.enable_dial) { + client.subscribe(process.env.mqtt_topic+"/dial", (err) => { + }); + } + if (process.env.enable_control) { + client.subscribe(process.env.mqtt_topic+"/key", (err) => { + }); + } +}); +client.on("reconnect", () => { + console.log("Retrying connection") +}) client.on('message', function (topic, message) { // message is Buffer switch (topic) { - case "bitlair/telefoon/dial": + case process.env.mqtt_topic+"/dial": console.log("Dialing "+message) send_request({"number": message, "outgoing_uri": 'URI'}) break - case "bitlair/telefoon/key": + case process.env.mqtt_topic+"/key": console.log("Pressing "+message) send_request({"key": message}) break @@ -45,9 +58,13 @@ client.on('message', function (topic, message) { // Declare a route fastify.get('/', function (request, reply) { - reply.send({ hello: 'world' }) + if (request.ip == process.env.yealink_ip) { + client.publish(process.env.mqtt_topic+"/event/"+request.query.event, JSON.stringify(request.query)); + reply.send({ ok: true }) + } else { + reply.status(403).send({ ok: false }) + } //client.send(request.) - client.publish("bitlair/telefoon/"+request.query.event, JSON.stringify(request.query)); }) // Run the server! diff --git a/package-lock.json b/package-lock.json index 34f8670..f3d6b4b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,7 @@ "license": "ISC", "dependencies": { "axios": "^1.7.9", + "dotenv": "^16.4.7", "fastify": "^5.2.1", "mqtt": "^5.10.3" } @@ -345,6 +346,17 @@ "node": ">=6" } }, + "node_modules/dotenv": { + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, "node_modules/event-target-shim": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", diff --git a/package.json b/package.json index ebb4176..9611426 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "type": "module", "dependencies": { "axios": "^1.7.9", + "dotenv": "^16.4.7", "fastify": "^5.2.1", "mqtt": "^5.10.3" } diff --git a/phone.cfg b/phone.cfg new file mode 100644 index 0000000..5ed1fc1 --- /dev/null +++ b/phone.cfg @@ -0,0 +1,43 @@ +#!version:1.0.0.1 +action_url.setup_completed = http://192.168.2.74/?event=setup_completed&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.log_on = http://192.168.2.74/?event=registered&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.log_off = http://192.168.2.74/?event=unregistered&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.register_failed = http://192.168.2.74/?event=register_failed&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.incoming_call = http://192.168.2.74/?event=incoming_call&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.off_hook = http://192.168.2.74/?event=off_hook&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.on_hook = http://192.168.2.74/?event=on_hook&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.outgoing_call = http://192.168.2.74/?event=outgoing_call&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.call_established = http://192.168.2.74/?event=call_established&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.call_terminated = http://192.168.2.74/?event=call_terminated&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.dnd_on = http://192.168.2.74/?event=dnd_on&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.dnd_off = http://192.168.2.74/?event=dnd_off&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.always_fwd_on = http://192.168.2.74/?event=always_fwd_on&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.always_fwd_off = http://192.168.2.74/?event=always_fwd_off&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.busy_fwd_on = http://192.168.2.74/?event=busy_fwd_on&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.busy_fwd_off = http://192.168.2.74/?event=busy_fwd_off&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.no_answer_fwd_on = http://192.168.2.74/?event=no_answer_fwd_on&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.no_answer_fwd_off = http://192.168.2.74/?event=no_answer_fwd_off&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.transfer_call = http://192.168.2.74/?event=transfer_call&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.blind_transfer_call = http://192.168.2.74/?event=blind_transfer_call&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.attended_transfer_call = http://192.168.2.74/?event=attended_transfer_call&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.hold = http://192.168.2.74/?event=hold&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.unhold = http://192.168.2.74/?event=unhold&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.mute = http://192.168.2.74/?event=mute&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.unmute = http://192.168.2.74/?event=unmute&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.missed_call = http://192.168.2.74/?event=unmute&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.ip_change = http://192.168.2.74/?event=ip_change&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.reject_incoming_call = http://192.168.2.74/?event=reject_incoming_call&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.answer_new_incoming_call = http://192.168.2.74/?event=answer_new_incoming_call&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.busy_to_idle = http://192.168.2.74/?event=busy_to_idle&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.idle_to_busy = http://192.168.2.74/?event=idle_to_busy&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.forward_incoming_call = http://192.168.2.74/?event=forward_incoming_call&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.transfer_finished = http://192.168.2.74/?event=transfer_finished&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.transfer_failed = http://192.168.2.74/?event=transfer_failed&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.setup_autop_finish = http://192.168.2.74/?event=setup_autop_finish&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.call_waiting_on = http://192.168.2.74/?event=call_waiting_on&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.call_waiting_off = http://192.168.2.74/?event=call_waiting_off&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.call_remote_canceled = http://192.168.2.74/?event=call_remote_canceled&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.cancel_callout = http://192.168.2.74/?event=cancel_callout&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.remote_busy = http://192.168.2.74/?event=remote_busy&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.headset = http://192.168.2.74/?event=headset&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber +action_url.handfree = http://192.168.2.74/?event=handfree&mac=$mac&ip=$ip&model=$model&firmware=$firmware&active_url=$active_url&active_user=$active_user&active_host=$active_host&local=$local&remote=$remote&display_local=$display_local&display_remote=$display_remote&call_id=$call_id&callerID=$callerID&calledNumber=$calledNumber