How to dial a call on Cisco VOIP 7940 from my PC? - automation

I'm trying to automate the dialing process: dial any number, patch others on the call, connect to a bridge at a scheduled time. I know how to do this while physically present in the office, but I need to automate it so that people can dial/get patched on the call without being physically present in the office.
If any one can help me with, how i can dial a number on VOIP phone from my PC, I would be able to do the rest (automation part).
Any Idea/Suggestion will be highly appreciated. Specially, the first method "Cisco IP Phone Services XML" which was suggested here: https://stackoverflow.com/questions/2517239/how-can-i-call-from-my-pc-through-my-cisco-ip-phone/. This one seems quite easy to implement as my automation tool primarily works around XMLs.

Iv'e never tested this with anything other than a SIP version of the Cisco 7940 series, so if your using SCCP or MCGP then what I present below may or may not work :-)
1) You need to make sure that you have your VOIP phone correctly set up and requesting it's config files from a TFTP server, helping you do that in this reply is beyond the scope of what I'm describing here.
2) Ensure that somewhere in one of those config files (Usually SIPXXXXXXXXX.cnf - where xxxxx is the phones mac address) you have 3 lines that configure the device for telnet access (which is disabled by default), the lines should look like this:
telnet_level: 2
phone_prompt: myphone
phone_password: mypassword
The telnet level MUST be 2, 0 disables, 1 makes it read only, the phone prompt is whatever you want the prompt to be '>', 'myphone ###' whatever and the password is the password you'll use to log in.
3) Once you've made those changes to your phone restart it by either pressing '*', '6' and 'Settings' at the same time, or by power cycling it. When it reboots it should obey the new settings in your config.
4) Now point a telnet program at the IP address allocated to your phone, and if all's gone well, you should get asked for a password, enter the password and marvel at the internal world of your Cisco phone ;-)
5) There are a number of commands you can use now, typing a ? and pressing return will give you help, typing then ? will help you on that command. type test ? and press return and you should see the following:
Test Command Definitions
------------------------
onhook , hu - Handset Onhook
offhook , hd - Handset Offhook
key , ky - Simulate Keystrokes
open , op - Open the Test Session
close , cl - Close the Test Session
show , sh - Show Call Feedback
hide , hi - Hide Call Feedback
6) Issue the command:
test open
your phone should reply with:
TEST: Opening Session
you are now in test mode.
7) once in test mode, entering
test key <key>
will activate that key. If you enter
test key ?
the phone should reply with:
Test Key Names
--------------
0-9 # *
line1 line2 navup navdn volup voldn
soft1 soft2 soft3 soft4 serv info dir
msgs set headset spkr mute
replace above with any of those names to activate that key.
8) Once your done, remember to call
test close
before disconnecting the telnet session.
I showed you the manual way here, but it doesn't take much to realize that you could easily script that from a PC or server that has access to the same sub-net as the phone. I have a set of JSON services running on mine that allows my home security system to do things like call the police if an intruder is detected while I'm not home, of for my web based phone book to auto dial numbers by clicking on a link.
All you need to know is the exact key sequence you need, then you can simply just open the test console, send the key sequence, and close. ANY key that's press-able on the phones front panel can be automated this way.

Related

WebRTC, ice candidates connection

I'm trying to learn how to use webRTC in applications so I wrote a code sample available in the following link: http://wklej.org/hash/fd599a32e8e/
At the beginning I need to say that I don't care about browsers compatibility, All I need is to support Chromium web engine without any external adapters/other libraries.
The web application should allow me to establish a connection between two browser tabs running on the same host — by manually exchange of appropriate data (SDP and ICE candidates).
Steps to follow:
Click on "create offer button", copy local SDP;
Go to other tab and insert previously copied SDP into "remote SDP" area, then press "create answer";
Copy generated local SDP, go to first tab, insert into "remote SDP" area and click on "set remote sdp" button (not create answer button);
Exchange ice candidates — copy them from one tab, insert to the second one and press "addCandidates" button. Do the same in the other way.
The main problem is that this function:
peer.iceconnectionstatechange = function(event) {
console.log("ice connection state: " + peer.iceConnectionState)
}
won't be triggered. I tried to play with STUN/TURN servers without success. The remote video won't run. If somebody could point out where I made mistake?
Try mine (cut'n'paste): https://jsfiddle.net/7vv2vxtt/
Or automatic (localStorage): https://jsfiddle.net/2v1Lnpmx/
This code intentionally left blank.
ICE candidates get added to the local offer/answer over time, so it simply waits for end-of-candidates before producing SDP with all candidates embedded.
Should work in all browsers.

sim800L gprs post request

I've been working on a LoNet mini GSM module (SIM800L), interfacing it with Arduino.
I've inserted the SIM mobile card with Internet connection available.
Through serial monitor I'm communicating with it with no problems, but when it comes to make a GET or a POST request to a webserver page it returns Network Error (601).
Here it is:
AT+SAPBR=3,1,"CONTYPE","GPRS"
OK
AT+HTTPINIT
OK
AT+HTTPPARA="CID",1
OK
AT+HTTPPARA="URL","http://:8080/folder/savedata.php"
OK
AT+HTTPACTION=0
OK
+HTTPACTION: 0,601,0 //601: Network Error
AT+HTTPREAD=1,100000
OK
And no response of the "echo" of the php page...
Do you have any suggestion?
Thanks in advance.
enter image description here
enter image description here
Did you set up your PDP context already? I think some main concepts are that you need to successfully attach and startup GPRS connection.
Some things that need to be active before this will work:
1) Network registration
AT+CREG? should return 0,1 if so, skip to 2)
if it doesn't then you can start by turning on and off the modem by inputting AT+CFUN=0 and then AT+CFUN=1
if you are still having problems registering make sure you have selected the correct network:
AT+COPS? should see your service providers name in the results
eg.
AT+COPS: 1,0,"T-Mobile USA"
If you don't, then make sure your band is set properly to your service provider. Look up your providers 2G band
e.g. t-mobile uses PCS_MODE for their 2G service. set this via:
AT+CBAND="PCS_MODE"
Also, obviously you should make sure you have signal:
AT+CSQ should return at at least a 5 or 6
2) Network Activation
AT+CIPSHUT
AT+CGATT=1 - this can take some time to get through. I have a 40 sec timeout
Its important for this step to work. If it doesn't perhaps restart your modem. But this is a key part.
3) setting PDP context and bringing up GPRS service
AT+SAPBR=3,1,"CONTYPE","GPRS"
set your APN: find out what your 2g APN is from your provider.
e.g. for t-mobile: epc.tmobile.com
define your APN:
T+SAPBR=3,1,"APN","epc.tmobile.com"
AT+SAPBR=1,1 This is the most important part to get through. Sometimes it takes a while to get through, I have a timeout on this part for 3 minutes to let it work.
if this doesn't give you an error proceed:
4) sending HTTP
Basically proceed with what you have...
an example of what I do:
AT+HTTPTERM
AT+HTTPINIT
AT+HTTPPARA="CID",1
AT+HTTPPARA="URL","www.google.com"
AT+HTTPACTION = 0 This should return 200 if it is successful
5 shut down GPRS
AT+CIPSHUT this may give you an error buts its not important
AT+SAPBR=0,1 can take awhile
AT+CGATT=0 also can take a while
anyways I wrote some pretty neat lightweight code for arduino to send data via HTTP. I also wrote one for SMS. let me if you want to take a look. I use a SIM800L -- one of the cheap breakout boards.
If you want to use https add ssl in following order.
mySerial.println("AT+HTTPINIT");
mySerial.println("AT+HTTPSSL=1");
mySerial.println("AT+HTTPPARA=CID,1");
AT+HTTPSSL=1 this will let you to use url with https://
This really useful, if you want to use google cloud functions to add data to firebase.
Try using ipaddress in place of DNS as:
AT+HTTPPARA="URL","http://example.com:8080/folder/savedata.php" OK
Replace it to:
AT+HTTPPARA="URL","http://29.09.07.12:8080/folder/savedata.php" OK
It works in most of the cases.

Memory Address Range - F7FFF000 converted to what command line option?

First, appreciate you giving this a look. I have an ancient piece of software that writes old Linear PCMCIA cards. In my case, I want to use it in a specialized piece of gear called a Tech2. The software in question is called Memory Card Explorer. Now, I know for a fact it works in Windows XP with Native PCMCIA slots. However, I have a slot that is built on a Dual Systems adapter (basically an Expresscard to PCMCIA adapter).
The issue arises when following the instructions on installation issues, the program refuses to locate the Dual Adapter. Here's the example given in the manual:
"Use a similar address to the PCMCIA adapter. That address can be found using msinfo32.exe.
Eg: if the PCMCIA socket has a memory resource of F8000000 then use a MCE window command of F80D0000 using command line option of WF80D0."
So I get my adapter address which is F7FFF000 but have no idea where to add the "d" to the resource address then change it to a command. I've tried WF7FD0. Am I missing something simple in how these addresses are truncated for command line? Is there a calculator that does the conversion for you somewhere?
Thanks.
It looks like the pattern is to add 0x000D0000 to the address, take the five high nibbles of the address (which makes sense, since these sorts of addresses are typically page-aligned the bottom 3 nibbles will always be 0 on a system with 4KiB pages), and prepend 'W'. Try WF80CF.

Change IP Address using Visual Basic

How can you change your IP Address using visual basic please? I havnt been able to find anything useful anywhere so i was just wondering if I could get some help on here?
Im not onabout the external Ip address. I know that cannot be changed(I have a static one from my isp.) Im onabout changing the internal ipaddress... for example changing from: 192.168.1.150 to 10.0.0.125 –
Thanks
Chris
You could use some Windows scripting. It gets a little messy but you could create the script in VB.Net, write it to your hard drive and then execute it. When done, you can delete the script.
Here is an example of a script that changes the IP Address (and some other related fields):
http://www.wincert.net/forum/topic/40-change-ip-configuration-via-vb-script/
Then, you would execute it in VB.Net by calling
Process.Start("<The path of your .vbs file here>")
Good luck.
Your IP Address is leased to you via your ISP when you go online - you can't just "change it". If your ISP uses Dynamic IP leasing, you can switch off your router/modem for around 5 minutes, and reconnect - at which point you'll receive a new IP.
The only way to replicate this via VB would be to disconnect the user from a modem-based service within your application. But in this case, I'd hazard a guess that clicking the "disconnect" button would be an easier solution for the user.
you may not need to write any script to do this. And you dont need 2 network adapters as the only way to do this. in windows the network adapter can be assigned several IP addresses at the same time. go into network properties ipv4 tcp/ip settings advanced. you can put several ip addresses and masks. so if you have one pc but are using 2 different networks, just put 2 addresses in, then whichever network is connected use it normally.
if you have a network gadget like a new router and its on 192.168.0.200 and you know its going to be set to 10.1.1.x after you login, assign the computer 2 IPs like 192.168.0.100 and then 10.1.1.100.

VB.NET - Set windows to control/manage wireless over third-party clients

Within VB.NET, trying to find an easy way to in a sense check the check-box "Use Windows to configure my Wireless Network Settings". This is an option that forces windows to use your wireless over third-party programs that may try to steal control. I am aware this requires to have WZC enabled within services and that's something that can be easily accomplished one way or another.
I doubt or rather cannot find a proper registry value or API call to check or initiate such a task.
I would use a registry-recorder to record the changes when manually changing the value, then its a piece of cake to implement the register change in code.
There are plenty programs that can be used to see what changes has been done in the registry, here are one free: http://www.kephyr.com/systemsherlocklite/index.phtml, but google may find more or better variants out there.
With this tool, create a registry dump:
systemsherlock.exe -dump d1.dat -regdirs HKEY_ROOT
Do the change in the wireless network settings
Do a new dump of the registry:
systemsherlock.exe -dump d2.dat -regdirs HKEY_ROOT
And last, compare them and see what has changed:
systemsherlock.exe -compare d1.dat d2.dat