#
Showing posts with label VoIP. Show all posts
Showing posts with label VoIP. Show all posts

Monday, July 10, 2023

For this I am using the raspbx-10 which seems to be stable at the moment I do this. The Pi I use is my old model 3 B, but should definetly work on model 4. Aslo I use the current updated SCCP Manager which has a bug. Hopefully the bug will be fixed at the time you read this post but anyhow I will provide a simple work around I did myself to overcome it.

I am writing this post after trying numerous ways to do this using SIP and SCCP but looks like Cisco SIP images were full of bugs and this was the method which worked for me. Note that the phones I use here are very old but this method will do the trick for any Cisco phone model you have and this seems to be the easiest way.

Download the image from official site and fireup a an SD card and load it to the Raspberry Pi.

 Lab setup is simple, all the devices are in the same LAN. DCHP server is created in a router, TFTP is hosted by default in FreePBX server which again is inside my Pi. 
Once the RasPBX is installed, log in using the root username and password and set it up with a static IP.

sudo apt update && sudo apt upgrade -y
apt-get install git
cd /usr/src
git clone https://github.com/chan-sccp/chan-sccp chan-sccp
cd chan-sccp
./configure --enable-conference --enable-video 
make -j2 && make install

Now just use a web browser to access log in to FreePBX and do the initial configuration.
Just give a username and password, an email and a System ID name..
Then use the above given password to log in to the FreePBX Administration on next window.

Now go to Admin -> Asterisk Modules and under Excluded Modules add chan_skinny.so and under Manually Loaded Modules add chan_sccp.so and hit Apply Config..

Now hit a reboot in CLI..

Download the SCCP Manager from following link..

Under Admin -> Module Admin, use Upload Modules to upload the downloaded file.
Now click Manage local modules -> SCCP Manager, hit Install and Process, Confirm..

Here is the place you get the following error.









If you get this error, just go to the cli and hit the following command to edit the php file.
nano /var/www/html/admin/modules/sccp_manager/install.php
just comment the if clause and save it like below.

Now Process, Confirm it again it will be fine, just hit Return..
Now you can see new SCCP Connectivity Tab appear in the PBX.
Go to SCCP Connectivity -> Server Config and set SCCP Server Name to Asterisk.
Move to SCCP Device and Change the Digit Timeout to 2 which is more practical for lab.
Move to SCCP Time and check Yes to NTP Server Enabled and change the Time Zone to match yours..
Hit Submit and Apply Config..

Now download the images from Cisco official site. The phone model I am using is 7945G.
I used version Firmware version 9.4(2)SR4 which is kind of a latest. Make sure to download the .zip file not the cop.sgn file.




Now unzip the files and load them to /tftpboot directory using a SFTP client like FileZilla.
Following are the firmware files.









Now go back to SCCP Connectivity -> System Parameters and select Show All from drop down.
Search for 7945 and hit the Pencil mark in Actions. 

Copy the Load Image name from the actual file name and paste it (without .loads extension) and hit Apply.






Now go to Sccp Connectivity Tab -> Phones Manager. Click Add Extension.
In General Tab, I entered this phone Extension and Display Name both to be 1001 and hit Submit.




Again go to SCCP Manager -> SCCP Phone and click Add Device Phone.
Under Device Configuration, enter the MAC address of the phone and Type to match something like 7940 (7945 was not there). Also I changed the device label to be 1001. The label has nothing to do with the extension. 


















The Line is mapped at the Device Buttons tab..








Now Plug the phones to the switch and give the hard reset.
Hard reset is giving power pressing the # key until the line buttons blink and then push 123456789*0#

Then the phones will register..

Please note that the following is the DHCP configuration in my router.

Option 150 must be configured to identify the TFTP server..

Monday, September 16, 2019

This is required when we need to configure LLQ (Low Latency Queuing) based on the number of calls according to the VoIP codec used. For the calculations, following parameters are required..

1. Codec Payload size
2. Layer 4 header size (RTP & UDP headers)
3. Layer 3 header size (IP headers)
4. Layer 2 header + tail size (Ethernet, Frame-relay, HDLC etc headers)

Accounting Layer 2 header is important because LLQ policer on Cisco IOS takes this overhead into account when enforcing the maximum rate.

Ex:- G.711

By default G.711 generates 50 VoIP packets per second.
G.711 has a codec framing rate of 10 ms (100 samples per second) which means 1 VoIP packet carries 2 samples. 1 sample has 80 bytes. So the Payload is 160 bytes.

So the Code Payload Rate = 160 x 50 x 8
                                      = 64 kbps

This is why we call the G.711 is 64 kbps..

But actual bit stream is bit more larger because of the Layer 4,3,2 headers.

The RTP header is 12 bytes & UDP header is 8 bytes, therefor Layer 4 header is 20 bytes.

A typical Layer 3 IP header (with no options) is 20 bytes.

Layer 2 Ethernet header + tail is typically 18 bytes (14 bytes for the Ethernet header and 4 bytes for FCS (32 bits). If the frame carries a VLAN tag, add another 4 bytes, for 22 bytes of total overhead.

So the total bandwidth for a G.711 call = (160 + 20 + 20 + 18) x 50 x 8
                                                         = 87.2 kbps

Note:-

Basically if the Layer 3 packet size is given, you need only to add the Layer 2 overhead and multiply with the packet rate and 8 to get the bit rate..

Ex:- Calculate the bandwidth required in Ethernet for a G.729 call which generates 50 packets per second with a Layer 3 size of 60 bytes..

= (18+60) x 50 x 8
= 31.2 kbps

Sunday, September 8, 2019

What switchport voice vlan command does is that it will be used with an access vlan command in a Cisco access switch so that the VLAN specified in voice vlan command will be tagged and the VLAN used in access vlan command will be untagged and forwarded to the PC which is attached to the IP phone. Truely this will make this port a trunk at the back end.

Cisco IP phones will identify this tagged VLAN via CDP and will move ahead with registering with a CUCM. Let's do a practical where the commands can be misconfigured and let's see how will devices respond.









In the diagram it shows e0/0 is connected to phone but truly Fa0/7 is the port connected to the phone.
Also note that VLAN 810 is a data VLAN and 904 is a voice VLAN..

Let's see the 1st combination which is the default best practice.


Will work as expected.
Phone will register in VLAN 904
PC will be able to use VLAN 810







2nd combination where both voice VLAN and data VLAN are configured to same data VLAN.


Both the phone and PC will use same VLAN and if VLAN 810 has routing to the CUCM, no problem will occur.







3rd combination where only the access vlan command is configured.


Again both the phone and PC will use same VLAN and if VLAN 810 has routing to the CUCM, no problem will occur.






4th combination where the port is configured as a trunk, and a native VLAN is configured.


This time again looks like the above configurations where the voice VLAN is tagged and the data VLAN is untagged but what happens is again both the phone and PC will use same VLAN and if VLAN 810 has routing to the CUCM, no problem will occur.

Sunday, September 9, 2018

Most of the time you will find / download CUCM / UCCX etc images in non bootable formats which will not be installed on VMware Workstation or other platforms easily. For lab purposes you will find this post very useful. I am using UltraISO for this tutorial.

Open or extract your image to see the contents in it. Refer the following image..

(click on the image to view in full size)

You can see a [BOOT] folder in the contents. If so this is a bootable image. If that folder does not exist, it is a non-bootable image and it will show an error "Operating System not found" when you are going to install in VMWare Workstation etc.

I am converting a UCCX image here. UCSInstall_UCCX_9_0_2_UCOS_9.0.2.11002-27.sgn.iso is the image I downloaded from Cisco.

Open UltraISO and go to File > Open and open the image..












Go to isolinux folder and extract isolinux.bin to your desktop or somewhere..
















Go to Bootable and select Generate Bootinfotable..













Go to Bootable and click on Load Boot File and select the extracted bin file previously.












Finally go to File > Save As and give a name like Bootable_UCCX.iso
Now its is ready to install in VMWare workstation etc.

Sunday, September 2, 2018

This can be found mostly nowadays with SRST configuration. But it is not only limited to SRST. If you have an ISR at home, you can do this with your home PSTN connection. I have a Cisco 2911 with FXO ports and some IP Phones which are registered to my VGW (Voice Gateway Router).

If you want to know how to register an IP Phone at a Router please click here.
If you want to know how to configure SIP SRST please click here.

Setup is simple, the RJ11 from PSTN analog line connects directly to the FXO port of the router. FXO (Foriegn Exchange Office) is a type of WAN interface card which an analog line from a PBX or a Telephone service provider can be connected to.




(1) Create a POTS dial peer for outgoing calls

VGW(config)#dial-peer voice 100 pots
VGW(config-dial-peer)#destination-pattern ..........
VGW(config-dial-peer)#port 0/0/0

Destination pattern .......... matches any number with 10 digits. port 0/0/0 is the physical analog port connected to the analog line.

(2) Configure an extension to ring for incoming calls

VGW(config)#voice-port 0/0/0
VGW(config-voiceport)#connection plar opx 1111
VGW(config-voiceport)#caller-id enable

This is configured to ring 1111 extension. Last command is to identify the caller's number.

Above configuration is enough to make calls out and receive calls in. Following command will show an active incoming call on port 0/0/0 as off-hook.

VGW# show voice port summary





Now let's say if you have 2 or more analog lines connected to several ports. You can create a trunk group and assign it to voice ports.

VGW(config)#trunk group PSTN
VGW(config-trunk-group)#hunt-scheme round-robin

VGW(config)#voice-port 0/0/0
VGW(config-voiceport)#trunk-group PSTN 1

VGW(config)#voice-port 0/0/1
VGW(config-voiceport)#trunk-group PSTN 2

In above configuration, Line choosing method is round robin which means if one line is busy it will go to the other line. 1 in the trunk-group sub command states it is the preferred line.

Note:-

show call active voice and debug voip dialpeer commands will be useful in troubleshooting.

Saturday, September 1, 2018

Survivable Remote Site Telephony (SRST) is a feature we can configure on Cisco ISR routers which will act as Call Managers when phones cannot reach CUCM. Mostly you will see this at WAN sites but for the sake of learning the technology, I am configuring it with in a LAN segment.

Following is a real world topology.













Following is the lab I am setting up..












Goal is to register the IP phones at Router when connection to CUCM is gone.
First let's look at the license capability of the Router. I am using a Cisco 2911.

Router#show license detail cme-srst









If the output looks like above, it's good to go.

(1) Create a SRST reference on CUCM

Go to CM Administration > System > SRST and Add New

























IP address 192.168.137.100 is the IP address of the SRST router.

(2) Give the SRST Reference on Device Pool

Go to CM Administration > System > Device Pool and select SRST reference.

















(3) Enable SIP Registrar Functionality on Router

Router(config)#voice service voip
Router(conf-voi-serv)#allow-connections sip to sip
Router(conf-voi-serv)#sip
Router(conf-serv-sip)#registrar server expires max 600 min 60
Router(conf-serv-sip)#bind all source-interface g0/0

(4) Globally Assign Characteristics to SIP Phones

Router(config)#voice register global
Router(config-register-global)#mode esrst
Router(config-register-global)#system message "SIP-SRST is Active"
Router(config-register-global)#max-dn 200
Router(config-register-global)#max-pool 20

"SIP-SRST is Active" will be displayed on screen of the IP Phones when it is registered at router.

(5) Configure SIP SRST Services for IP Phones

Router(config)#voice register pool 1
Router(config-register-pool)#id network 192.167.137.0 mask /24
Router(config-register-pool)#codec g711ulaw
Router(config-register-pool)#dtmf-relay rtp-nte cisco-rtp sip-notify

Above commands will be enough to register IP Phones at router when CUCM is down.

Router#show sip-ua status registrar will show the current registered phones.









If the router is configured correctly as an Gateway (with dial-peers etc) calls will be routed out.

Monday, August 27, 2018

The router model I am using is a Cisco 2911 and the IP phone is Cisco 7945. There will be something to consider regarding licenses if the router is brand new.

Router#show version | b Package










You will notice that uc (for unified communications) is not enabled. For 2911 platform you will have to enable it by issuing the following command.

Router(config)#license boot module c2900 technology-package uck9

After the reboot, the license will be enabled and voice commands will be present.










Now you have voice capabilities with an evaluation license, you can move it to permanent by following command.

Router#license right-to-use move <license name>

Anyway, because it is enough to use evaluation for this, this will be fine..

I configured the IP address of the router to be 192.168.137.100 & the DHCP server is configured with option 150 which points to the TFTP to be 192.168.137.100 (same CME).
Also remember to issue ntp master command on router which will be used by the phone to get time.

(1) Download Firmware for IP Phone

I downloaded "Firmware Files Only" from here. If you are doing this, you have to find the firmware for your IP phone.

It was a zip file for me. So I extracted it in my PC. Following were the files in it.












Last one can be neglected as it is for 7965 model which I don't have.

(2) Upload Firmware to CME

I did it using a TFTP server on my PC. If the file was a .tar file, you will have to use the following command, 192.168.137.10 is my PC.

Router#archive tar /xtract tftp://192.168.137.10/cme-full-7.1.0.1.tar flash:

(3) Telephony-Service Configuration

Router(config)#telephony-service
Router(config-telephony)#max-dn 30
Router(config-telephony)#max-ephones 20
Router(config-telephony)#ip source-address 192.168.137.100
Router(config-telephony)#cnf-file location flash:
Router(config-telephony)#load 7945 SCCP45.9-4-2SR3-1S.loads
Router(config-telephony)#create cnf

Maximum number of directory numbers to be configured is 30, and maximum number of phones to be configured is 20. These values should comply with the licenses. IP source address is the IP address of CME. Load command specifies the firmware to load for the specific model.

(4) Ephone-DN configuration

Router(config)ephone-dn 1
Router(config-ephone-dn)#number 1001

Router(config)#ephone 1
Router(config-ephone)#mac-address 2c31.246f.9413
Router(config-ephone)#button 1:1

Button x:y means the 'x' is the real button on the phone while 'y' is the ephone-dn number.

(5) TFTP configuration

Router(config)#tftp-server flash:/term45.default.loads alias term45.default.loads

Now everything is ok. After connecting CME and the IP phone to same switch, phone will come up..

Tuesday, August 21, 2018

Go to Cisco Unified Servicability > Trace > Configuration
Select the server and select CM services as the Service Group & select Cisco CallManager (Active) as the Service.
Tick Apply on All Nodes if you have a CUCM cluster and hit Save.

Following will be the default settings.



























Go to Cisco Unified CM Administration > Application > Plugins, Hit Find to search available plugins and download Cisco Unified Real-Time Monitoring Tool and install it.

Login to CUCM giving username and password.









Go to Voice/Video tab and click Real Time Data.


















You can double click on a row and view the call flow. Following is a successful call.


Monday, August 20, 2018

The core of any telephony service is to access the numbers they want to dial.
In the CUCM there are 3 main components to build a dial plan.

1. Route Pattern
If someone dials a number which matches a configured route pattern, that call is eligible for routing.
Ex:- XXX, 9.XXX, [1-2]XX, 234!#

If you want to know about Route Patterns click here.

2. Dial Plan Hierarchy
This is what tells the CUCM to route the call to the specified destination.
Ex:- route 911 calls to external gateway..

If you want to know about Dial Plan Hierarchy click here.

3. Class of Control
This controls the calling abilities of phones.
Ex:- A lobby phone should not be able to take IDD calls..

In this post, let's discuss about Class of Control.
To control access between phone numbers we use 2 things with a simple logic.

1. Partitions
2. Calling Search Space (CSS)

Partitions
Who can call me?
Name assigned to a set of numbers and patterns

CSS
To whom can I call?
List of Partitions

Let's assume following phone numbers of a company are assigned to Partitions & CSSs like below.

Let's assume 
PT_1 is assigned to CSS_2
PT_2 is assigned to CSS_1

Default is equivalent to no Partition.




You can only call a number, if that number's Partition is in your CSS & You can always call a number if that number is not in a Partition.. 

Can 1001 call to 1002 and vice versa?
Cannot.. Because  both 1001 and 1002 is in CSS_1 which has access only to PT_2

Can 1001 call to 2001 or 2002?
Can.. Because 1001 is in CSS_1 which has access to PT_2

Can 1001, 1002, 2001 or 2002 call to 3001 or 3002?
Can.. Because 3001 is not in a Partition..

Can 3001 or 3002 call to 1001, 1002, 2001 or 2002?
Cannot.. Because 3001 and 3002 has no CSS..

Can 3001 call to 3002 and vice versa?
Can.. Because both 3001 & 3002 has no CSS and not in any Partition..

The core of any telephony service is to access the numbers they want to dial.
In the CUCM there are 3 main components to build a dial plan.

1. Route Pattern
If someone dials a number which matches a configured route pattern, that call is eligible for routing.
Ex:- XXX, 9.XXX, [1-2]XX, 234!#

If you want to know more about Route Patterns click here.

2. Dial Plan Hierarchy
This is what tells the CUCM to route the call to the specified destination.
Ex:- route 911 calls to external gateway..

3. Class of Control
This controls the calling abilities of phones.
Ex:- A lobby phone should not be able to take IDD calls..

If you want to know more about Class of Control click here.

In this post, let's discuss about Dial Plan Hierarchy.
Following diagram shows 2 independent companies which has 2 CUCMs and connected via a SIP trunk. And both of them have E1 connections to PSTN too.





















Let's assume 011224 & 011225 are prefixes given to identify the area code and the specific company.
To dial 4642 from people outside the companies (from home - PSTN) they should dial the full number 0112254642.
But if 4641 of company B dials 4642, they can make an internal call.
Also to dial 4642 of company B from company A, 74642 is enough as they have a SIP trunk and the CUCM of company A is configured with a route pattern 7.XXXX to be routed out to the inter-company SIP trunk. But in this case, if a phone at company A dials only 4642, it should ring the 4642 of company A..

Let's see how the dial plan hierarchy works..

Route Patterns are pointed to Route Lists which are pointed to Route Groups which are pointed to Devices/Gateways/Trunks

When you are configuring it, you actually do it from right to left. You configure Devices (Gateways/Trunks), Route Groups, Route Lists & finally Route Patterns.

Above hierarchy is for the CUCM of company A. It should be configured to route calls to company B from company A which matches the route patterns in CB_RL route list which is associated with CB_RG route group which points to SIP_to_CB SIP trunk.
If the SIP trunk fails, the calls will be routed out via PSTN_RG route group which points to PRI-1 & PRI-2. But before sending out to PSTN, we should do digit manipulation in order to match the numbers of the outside world. This digit manipulation (changing numbers) is something we can do in dial plan hierarchy.

We have to change 2 numbers in the above scenario.

1. Calling Party number
2. Called Party number

Let's assume 4641 of company A (Calling Party) wants to dial 4642 of company B (Called Party). So he dials 74642 which is the route pattern associated with CB_RL. But when the device (SIP_to_CB) of CB_RG fails, the CB_RL route list should consider PSTN_RG which is the second route group associated with it. When we add the PSTN_RG to the CB_RL is the place we do digit manipulation.
























Company A should add prefix digits 011224 for the calling party and 011225 for the called party so that the number can be identified by PSTN. In the gateway configuration of company B, they can configure to accept only last 4 digits which will strip away the prefix digits company A added so that their Call Manager can route the call internally.






The above digit manipulation can be also done using a mask too like the following.

























To change the Calling Party number, Company A need only to select on from drop down menu of Use Calling Party's Phone Number Mask which will use the default external mask we give while configuring extensions. If that mask is not enough to route the calls back from a long distance, we can add prefix digits too.

Note:- 

Although the user dials 7.4642, I have not configured a discard predot at Route Lists because it is already stripped away at the route pattern. 

Sunday, August 19, 2018

The core of any telephony service is to access the numbers they want to dial.
In the CUCM there are 3 main components to build a dial plan.

1. Route Pattern
If someone dials a number which matches a configured route pattern, that call is eligible for routing.
Ex:- XXX, 9.XXX, [1-2]XX, 234!#

2. Dial Plan Hierarchy
This is what tells the CUCM to route the call to the specified destination.
Ex:- route 911 calls to external gateway..

If you want to know about Dial Plan Hierarchy click here.

3. Class of Control
This controls the calling abilities of phones.
Ex:- A lobby phone should not be able to take IDD calls..

If you want to know more about Class of Control click here.

In this post, let's discuss about Route Patterns and their usage in common.









Lets get a simple example of XXX, X can be any digit. it is called a wildcard.

When someone dials a number, let's say 911, 9 matches the 1st X, 1 matches the 2nd X and final 1 matches the final X. if XXX is configured as route pattern and if someone dials 911, that call is eligible for routing. X means any digit, that means any 3 numbers can be routed using XXX route pattern..

When a shorter pattern matches the beginning of a longer pattern, calls to the shorter pattern will be delayed by the inter digit timeout (t.302 timer).

Ex:- Let's say we have 2 route patters configured..

XXX
XXXXX

If some one dials 911 now, it will be delayed to process because CUCM thinks the user may be dialing the 2nd pattern.. This delay is the t.302 timer which is default to 15 seconds and can be changed manually at Unified CM Administration > System > Service Parameters, select the server and the service as Cisco CallManager (Active).

Under Clusterwide parameters, you will find it.

You can configure a route pattern to exactly match 911 and set Urgent Priority Tick under route pattern configuration to route the call right way ignoring t.302 timer.














Companies use access codes to differentiate between internal and external extensions.

Ex:- 9.XXXXXXX

When you start dialing with 9, CUCM thinks it is an external call now.
So there cannot be internal numbers starting from 9 in the company..

Ofcourse this 9 must be stripped away when you route the call out from your network to public telephone network which we call 'digit manipulation'. To do that chose 'Discard Predot on called party transformations'

As soon as you hit 9 a second dial tone comes from the CUCM. We need to configure it from CUCM, tick Provide Outside Dial Tone. You can see it is ticked on above screen shot.

Now let's think another possibility..

If someone dials 911, it should be routed externally but people may not remember to dial an additional 9 before 911. So following 2 route patterns must be configured..

911
9.911

Now what about other service numbers like 211, 311, 411? Following route pattern must have to be configured to match them..

9.[2-9]11

This says the 2nd digit can be any number between 2-9

If [257-9] is there that means the digit can be 2 or 5 or 7 or 8 or 9..

Now what will be matched if someone dials 9911 from following route patterns?

911
9.911
9.[2-9]11

It will match the 2nd one because it is the best match as the 3rd one has 8 more combinations..

When a number matches more than one pattern, the pattern with the smallest number of possible matches is selected.

Ex:- 1234 is dialed and following route patterns are configured.

[1-5]XXX
[1-2]XXX

2nd pattern is selected as it has only 2000 possibe matches compared to the 1st one which has 5000 possible matches.

Here are some other wildcards..

9.011!

'!' means there can be any number of digits so if someone dials 9011234567 CUCM will wait for t.302 timer and route the call. To stop t.302 waiting time another wild card can be introduced.

9.011!#

'#' means the user has end dialing. So if 9011234567# is dialed, the call will be routed right away..

Tuesday, April 11, 2017

Here is a free 3rd party troubleshooting tool which can be used to monitor and take control of a Cisco IP phone remotely. As a network administrator, you will need this to test the functionality of the phones you manage. I got to know about it recently & thought to share how I use this interesting app..

Only following Cisco IP phone models will be supported..
6921, 6941, 6945, 6961, 7911, 7921, 7925, 7926, 7931, 7937, 7940, 7941, 7942, 7945, 7960, 7961, 7962, 7965, 7970, 7971, 7975, 8961, 9951, 9971

Enable Services
Go to Cisco Unified Serviceability page and go to Tools > Service Activation
Make sure the following services are enabled..

Cisco Call Manager
Cisco TFTP
Cisco CTI Manager
Cisco AXL Web services
Cisco Call Manager SNMP service 

SNMP Configuration
Now go to Cisco Unified Serviceability > SNMP V1/V2c > Community String
Select your server from the drop down menu and click find..
Click add new to create a new community string or you can use existing string if available.
If you are creating a new string, select ReadNotifyOnly or ReadOnly from access privileges.
Just remember the string you gave..

Create Application User
Now go to Cisco Unified CM Administration page & go to User Management > Application User
Create a new user with an ID & a password. These settings will be used to log into the app later..
This is where you add phones which you want to control.
Click Find More Phones button in the device information area and select and add phones which you need to control..
After adding any phone, save it.. (click on the images to see in full size)














Download & Install the App
Go to https://support.singlewire.com/s/software-downloads/a17C0000008Db3aIAC and download the app. It is completely free for everyone.. (singlewire.com)

If you are using Windows 10 like me, may be it will not install properly just by double clicking the .exe file. Instead it will display the error "Installer UI Mode Error"

If so right click and go to Properties > Compatibility & tick and select Run this program in compatibility mode for Windows 7






























After installation completes it will ask you to enter the license key. It is in your downloaded folder. Open it..

Configuring & Using the App

Now go to Edit Preferences 1st.
Provide the required fields..
Here is the place you will enter the Community String..




Now you should be able to control the phones you added at the Application User page by just giving the ip address of the phone.

You can get the IP of the phone from CUCM..





Here is a 7945 phone I tested..
When ever you want to take control of a phone, what you should do is to add the phone to application user and give the IP of the phone to the app..