PhoneView provides the ability to send any type of command to multiple IP Phones, not just the buttons on the built-in keypad etc...
The commands that can be sent are called URI's (Universal Resource Indicators), a number of URI commands map to buttons on the phone, different phone models have different buttons and therefore different URI's.
PhoneView has its own URIs which allow user to send commands to the phone using different protocols and techniques.
Note: To send a URI command to one or more phones in PhoneView simply select or enter the URI into the 'Command Bar' (just under the tool bar) and click Send, this will send the provided command(s) to selected phone(s).
Following is a summary of PhoneView URIs
URI Commands |
Description |
Cmd:DeviceInfo |
Gets the device basic information i.e. Serial Number, AltTFTP & Firmware |
Cmd:SwitchInfo |
Retrieves the switch information i.e. switch name, switch port |
Cmd:Login |
Login the userid specified in the DataView 'User' column (no PIN required) |
Cmd:Logout |
Logs out the user from the phone |
Cmd:CallStats |
Gets call stats/details i.e. Codec, MOS |
Cmd:HardReset |
Performs a Hard reset on the device (Not a factory reset) |
Cmd:SoftReset |
Performs a soft reset. |
Cmd:ITLStatus |
Gets the current ITL status from the phones web page, saved in "ITL Status" column |
Cmd:SecurityInfo |
Gets the current ITL Signature from the phones web page, saved in "ITL Signature" column. This in only available in newer phone models i.e. 78xx, 88xx, 99xx |
Cmd:ITLDelete |
A built-in macro command that deletes the ITL file (or resets security settings depending on the model) automatically. This command is model independent, PhoneView automatically sends the appropriate key sequence based on the model of the phone. |
Cmd:CTLDelete |
As Cmd:ITLDelete above but deleted the CTL file, this may be the same sequence as ITL delete for some phone models, however the older (i.e. 79xx range) require a separate sequence for CTL files, hence the need for a separate command for deleting CTL files consistently across all models. |
Cmd:SetTFTPServer:10.10.10.10 |
Enables Alt TFTP and sets TFTP Server 1 to the specified IP Address, it will also clear the ITL file if the model prompts for confirmation |
Cmd:UpdateTFTPServer:10.10.10.20 |
Updates TFTP Server 1 (requires Alt TFTP to be enabled already) |
Cmd:UpdateTFTPServer2:10.10.10.30 |
Updates TFTP Server 2 (requires Alt TFTP to be enabled already) |
Cmd:ClearTFTPServer |
Disables Alt TFTP |
Cmd:UnlockSettings |
Toggle the lock on the settings pages (only applies to 79xx models, command will no do nothing on other models). Note: This macro includes a 5 second pause to allow the settings lock state to change, so you can use another macro immediately after this one knowing the change has taken effect |
Cmd:Pause |
Wait for 1 second, this is typically used as part of a macro to insert a delay between actions/keypresses |
Cmd:Pause:2000 |
Wait for 2000ms (2 Sec), the value can be changes to accommodate a different wait duration |
Cmd:Screenshot |
Take a screenshot of the phone, same as clicking the 'Phone Screenshot' button on the toolbar |
Cmd:SendText:Title:Body:Prompt:1234 |
This sends a text message to the phone screen, replace the 'Title', 'Body', 'Prompt' as required, only the Title & Body are mandatory, the rest can be omitted i.e. 'Cmd:SendText:My Message:Hello'. The last parameter '1234' is an optional callback number, if specified the text message includes a 'Dial' soft key that calls that number |
CTI:GetIPAddress |
This uses CTI to obtain the current IP Address of the selected phone(s), this is useful if if phone has been rebooted/upgraded and screenshots/queries fail because PhoneView has the old IP Address. This enabled the IP Address to be updated without having to perform a Group > Update which can take a number of minutes on larger systems because of the API throttling in CUCM |
CTI:Call:1234 |
Using CTI call control make the phone dial the specified number |
CTI:Answer |
Using CTI call control answer the current call, ignored if phone is not ringing |
CTI:Hold |
Using CTI call control place the call on hold, ignored if no call or already on hold |
CTI:UnHold |
Using CTI call control un-hold the call, ignored if no call or not held |
CTI:Drop |
Using CTI call control hang-up the current call |
Cmd:StartMonitor:SEP001BD4C661B6:10037 |
Using CTI call control start a 'silent monitor' session from the selected phone to the specified device 'SEP001BD4C661B6' on line '10037'. This requires an active call on the selected phone the command is send too and the device/line receiving the audio 'SEP001BD4C661B6/10037' in this example must have the 'Monitoring CSS' set to a calling search space that includes the partition the selected phone active line exists in |
Cmd:StopMonitor |
Using CTI call control stop the monitoring session (typically initiated using the 'Cmd:StartMonitor' command above) |
Note: Although you can dial numbers using the keypad or a sequence of keys (as per the tables below), the simplest way is to dial the number in one instruction. In order to do that you can use the Dial:<Number> URI, the number can include any dilatable characters including the '+' for globalised numbers i.e. Dial:+4441413541703
Note: All URI commands, both those implemented directly by PhoneView above as well as supported directly by the phone in the table below can be combined into a single macro command. This makes is possible to send complex sequences of keypresses and actions in a single operation to multiple phones in one operation. To do this use the pipe character '|' between each macro command, an example of a macro that makes a phone dial a number, wait 5 seconds then hangup:
CTI:Call:12345|Cmd:Pause:5000|CTI:Drop
When updating the phone configuration i.e. 'Cmd:ClearTFTPServer' the phones settings page needs to be enabled and unlocked. Settings are enabled by default, if not enabled can be enabled in CUCM, to unlock the settings page (mostly only 79xx models) you can use the 'Cmd:UnlockSettings' command to toggle the settings lock. If you are unsure of the 'lock state' of the settings performing a hard reset will ensure the phone will be in a 'Locked' state when it comes back online so then sending a 'Cmd:UnlockSettings' before a 'Cmd:ClearTFTPServer' will ensure that command will consistently apply even if phones are in a mixture of locked states. This can be combined into a single macro command to disable Alt TFTP:
Cmd:HardReset|Cmd:Pause:120000|Cmd:UnlockSettings|Cmd:ClearTFTPServer
This will perform a hard reset, wait for 2 minutes, unlock the settings then disable AltTFTP all in a single macro that can be sent to multiple devices, including a mixture of phone models in a single operation.
Note: You can use the Cmd:DeviceInfo command to query the current AltTFTP state of each phone, then sort on the 'AltTFTP' column in DataView and select only the devices that AltTFTP set to Yes
You may sometimes get an error (URI not found) when this happens, if this is the case the following Cisco document details all of the supported URI commands for each Cisco phone model:
PhoneView maps the most common buttons for most models of phones, but there may be occasions when it's necessary to manually enter the URI Command for a specific button that is not mapped in PhoneView.
http://www.cisco.com/en/US/docs/voice_ip_comm/cuipph/all_models/xsi/9_1_1/supporteduris.html
Following is a summary of Cisco URIs with Supported Phone Models .
Cisco URIs - Table
URI |
6921, 6941, 6945, 6961 |
7811, 7821, 7841, 7861 |
7905G, 7912 |
7906G, 7911G, 7931G |
7920 |
7921G, 7925G, 7925G-EX, 7926G |
7937G |
7940G, 7960G |
7941G, 7941GE, 7961G, 7961G-GE,7942G, 7962G, 7945G, 7965G, IP Communicator |
7970G, 7971G-GE, 7975G |
8831 |
8811, 8841, 8845, 8851, 8851NR, 8861, 8865 |
8941, 8945 |
8961, 9951, 9971 |
Key |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Softkey |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Init |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Dial, EditDial |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Play |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
QueryStringParam |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Unicast RTP |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Multicast RTP |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Display |
X |
X |
X |
X |
X |
Y |
X |
X |
Y |
Y |
Y |
Y |
Y |
Y |
Vibrate |
X |
X |
X |
X |
Y |
Y |
X |
X |
X |
X |
X |
X |
X |
X |
Notify |
X |
X |
X |
Y |
X |
X |
X |
X |
Y |
Y |
Y |
Y |
Y |
Y |
SendDigits |
X |
X |
X |
Y |
X |
X |
X |
X |
Y |
Y |
Y |
Y |
Y |
Y |
Application |
X |
X |
X |
Y |
X |
X |
X |
X |
Y |
Y |
X |
Y |
X |
Y |
Device |
X |
X |
X |
X |
X |
Y |
X |
X |
X |
X |
X |
Y |
X |
X |
Cisco URI Key - Table
Key URIs |
6921, 6941, 6945, 6961 |
7811, 7821, 7841, 7861 |
7905G, 7912G |
7906G, 7911G, 7931G |
7920 |
7921G, 7925G, 7925G-EX, 7926G |
7937G |
7940G, 7960G |
7941G, 7941G-GE, 7942G,7945G, 7961G, 7961G-GE, 7962G, 7965G, IP Communicator |
7970G, 7971G-GE, 7975G |
8831 |
8811, 8841, 8845, 8851, 8851NR, 8861, 8865 |
8941, 8945 |
8961, 9951, 9971 |
Key:Applications |
X |
Y |
X |
Y |
Y |
X |
X |
X |
X |
Y |
X |
Y |
Y |
Y |
Key:AppMenu |
X |
X |
X |
Y |
Y |
X |
X |
Y |
Y |
Y |
X |
X |
X |
X |
Key:Contacts |
Y |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
Y |
X |
X |
Key:Directories |
X |
Y |
X |
X |
Y |
X |
Y |
Y |
Y |
Y |
X |
X |
X |
X |
Key:Feature1 to Key:Feature120 |
Y |
X |
X |
Y |
Y |
X |
X |
Y |
Y |
Y |
X |
Y |
Y |
Y |
Key:FixedFeature1 to 3 |
Y |
X |
X |
Y |
Y |
X |
X |
Y |
Y |
Y |
X |
Y |
Y |
Y |
Key:Headset |
Y |
Y |
X |
Y |
Y |
X |
X |
Y |
Y |
Y |
X |
Y |
Y |
Y |
Key:Hold |
X |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
X |
Y |
X |
X |
Key:Info |
X |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
X |
X |
X |
X |
Key:KemPage |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
Y |
X |
X |
Key:KeyPad0 to Key:KeyPad9 |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Key:KeyPadPound |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Key:KeyPadStar |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Key:Line1 to Key:Line120 |
Y |
Y |
X |
Y |
Y |
X |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Key:Messages |
Y |
Y |
X |
Y |
Y |
X |
X |
Y |
Y |
Y |
X |
Y |
Y |
Y |
Key:Mute |
Y |
Y |
X |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
X |
Y |
Y |
Y |
Key:NavBack |
X |
X |
X |
Y |
Y |
X |
Y |
Y |
Y |
Y |
X |
X |
Y |
Y |
Key:NavDwn |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
X |
X |
Y |
X |
Y |
Y |
Y |
Key:NavLeft |
X |
X |
X |
Y |
Y |
Y |
Y |
X |
X |
Y |
X |
Y |
X |
Y |
Key:NavRight |
X |
X |
X |
Y |
Y |
Y |
Y |
X |
X |
Y |
X |
Y |
X |
Y |
Key:NavSelect |
Y |
Y |
X |
Y |
Y |
Y |
Y |
X |
X |
Y |
X |
Y |
Y |
Y |
Key:NavUp |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
X |
Y |
Y |
Y |
Key:Offhook |
X |
X |
X |
X |
X |
Y |
X |
X |
X |
X |
X |
X |
X |
X |
Key:Onhook |
X |
X |
X |
X |
X |
Y |
X |
X |
X |
X |
X |
X |
X |
X |
Key:PTT |
X |
X |
X |
X |
X |
Y |
X |
X |
X |
X |
X |
X |
X |
X |
Key:Release |
X |
X |
X |
Y |
Y |
X |
X |
Y |
Y |
Y |
X |
Y |
X |
Y |
Key:Services |
X |
Y |
Y |
X |
Y |
X |
X |
Y |
Y |
Y |
X |
Y |
X |
X |
Key:Session1 to Key:Session6 |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
Y |
X |
Y |
Key:Settings |
Y |
Y |
X |
Y |
Y |
X |
X |
Y |
Y |
Y |
X |
Y |
X |
X |
Key:Soft1 to Key:Soft5 |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Key:Speaker |
Y |
Y |
X |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Key:VolDwn |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Key:VolUp |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Summary of audio URIs
Audio URIs |
Description |
RTPTx:1.1.1.1:20480 |
Send a one-way unicast audio stream from the selected phone to the specified IP Address '1.1.1.1' on UDP port '20480' |
RTPTx:Stop |
Stop sending unicast audio, ignored if no active stream |
RTPRx:2.2.2.2:20480:100 |
Receive a one-way unicast audio stream to the selected phone(s) from the specified IP Address '2.2.2.2' and UDP port '20480', the last parameter is the volume to play the audio i.e. '100' percent |
RTPRx:Stop |
Stop receiving unicast audio, ignored if no active stream |
RTPMTx:239.10.1.1:20480 |
Send a one-way multi-cast audio steam from the selected phone to multi-cast address '239.10.1.1' on UDP port '20480' |
RTPMTx:Stop |
Stop sending multi-cast audio, ignored if no active stream |
RTPMRx:239.10.1.1:20480:100 |
Receive a one-way multi-cast audio stream to the selected phone(s) from the specified multi-cast IP Address '239.10.1.1' and UDP port '20480', the last parameter is the volume to play the audio i.e. '100' percent |
RTPMRx:Stop |
Stop receiving multi-cast audio, ignored if no active stream |
Play:Callback.raw |
This will play the 'Callback.raw' audio file stored on the TFTP server to the selected phone(s). Custom audio files can be created and uploaded, the format of the audio file is the same as the ringtone. |
Note: When using unicast audio steams you need to specify the IP Address and port number that matches the other party, i.e. the following command would be requires to establish one-way audio from Phone A (IP Address '1.1.1.1') to Phone B (IP Address '2.2.2.2'):
Sent to Phone A:
RTPTx:2.2.2.2:20480
Sent to Phone B:
RTPRx:1.1.1.1:20480
Comments
3 comments
The provided information is Excellent :-)
Is there a way to send or submit multiple URI commands (within the PhoneView application) like a script or MACRO ???
For example - I would like to execute/submit the following URI commands to change the Background Images on a group of 2000 telephones - using one or two steps:
Changing the Background Image on Cisco IP Phone
Key:Settings
Key:KeyPad1
Key:KeyPad2
Key:KeyPad3
Key:Soft1
Key:Soft2
Key:Soft3
Key:Soft3
You can send key sequences as bulk on the phone(s) as describe below-
Key:Settings|Cmd:Pause|Key:KeyPad1|Cmd:Pause|Key:KeyPad2|Cmd:Pause|Key:KeyPad3|Cmd:Pause|Key:Soft1|Cmd:Pause|Key:Soft2|Key:Soft3|Cmd:Pause|Key:Soft3
now select your phone(s) and copy above key sequences and paste it on the command bar(a bigger textbox on top) and click Send button to execute.
* Cmd:Pause - Pause command put 500 millisecond delay between each key sequence so this make sure that no key command get ignored by phones.
Hello,
I'm looking for a way to send a + to a phone to allow testing of plus dialing for globalization.
I tried some variations of the commands listed above but no luck.
Is this possible?
Thank you,
Toby Sauer
Please sign in to leave a comment.