Droid SIP Clients and Cisco CUCM – CSipSimple Example

Author
William Bell
Vice President, Solutions and Products

The Setup

I am using a Droid Incredible handset running Droid 2.2 (Froyo – what a name). I am still running the 7.1(3b)SU2 version of CUCM that Hailey used to test iPhone SIP clients and that I used to test X-Lite.  In my lab, the CUCM cluster is integrated with LDAP. Specifically a Microsoft AD 2003 DC/GC for testing.

The CSipSimple application version is 0.00-15. You can access CSipSimple from the Android Market.

Configuring CUCM

To save readers the time to go back to the X-Lite example, I will repeat the CUCM configuration steps here.

I like to get the station configured in CUCM before I start playing around with the client.  In CUCM you will need to create a SIP device and a user object.  You will need to make some associations between the two and perform some other ancillary activities in preparation.

Add a SIP Security Profile

I suppose you could consider this an optional step if you don’t mind SIP endpoints just registering to your CUCM cluster without a password.  I do mind this, so we are going to create a SIP security profile that forces the use of Digest Authentication.  If you go with the standard SIP security profile, digest authentication is not used.  This means that a client can connect by simply providing the extension number and a user ID.

Connect to your CUCM server (http://mycucm/ccmadmin) and go to System->Security Profile->Phone Security Profile.  Search for profiles that contain the string “third-party” and copy the profile named “Third-party SIP Device (Basic) – Standard SIP Non-Secure Profile”.  Configure the new profile as follows:

Save your settings.

Add the User

Go to User Management->End User.  You can add a new user or use an existing user.  You can also use a user that was replicated from LDAP using the DirSync service.  The information you need to configure (values shown are used in our example):

  • User ID: mysipuser
  • Password: (this is not used by CSipSimple, but you should always have one)
  • PIN: (this is not used by CSipSimple, but … you get the idea)
  • Last Name: Bell
  • First Name: Bill
  • Digest Credentials: *******  (this is used by CSipSimple!)

Click on Save.  We will come back to the user object in a moment.

Add the SIP Phone

Go to Device->Phone.  Click on Add and select “Third-Party SIP Device (Basic)”.  At a minimum, you should configure the following settings (values shown are used in our example):

  • MAC Address:  DEADBEEF0000 (set it to something unique, it doesn’t matter to SIPDroid)
  • Description:  Testing My CSipSimple (set it to something meaningful to you, it doesn’t matter to Sipdroid)
  • Device Pool:  HQ_User-SoftPhone_CSS (You should use a device pool that makes sense in your environment. I like to stick my softphones in a separate bucket. 
  • Calling Search Space: HQ_User-Std_CSS (this should be a CSS that fits into your dial plan, just like a standard Cisco SCCP station)
  • Device Security Profile: Third-party SIP Device (Basic) – Digest Required
  • Owner User ID: mysipuser
  • Digest User ID: mysipuser

Click on Save.  After saving the phone, you can add an extension.  Add the extension as you normally would.  The bare minimum settings I used for testing:

  • Directory Number: 9165551234  (I use 10d extensions)
  • Partition: CL_DN-1_PT (place the DN in your “phones” partition)
  • CSS: Apply line level CSS per your design
  • Voicemail Profile: Use the VM profile that you normally would
  • Display and Alerting:  Configure these as you would like

Click on Save.

Edit User Object

Now go back to the user you are assigning this soft phone to (e.g. mysipuser ).  Edit the user object.  Go to Device Associations and associate the device you just created.

Click on Save.

Configure CSipSimple

I’ll assume that the reader is quite capable of installing an application on their Android phone and jump right to configuring the client. First, you can load the CSipSimple client from your “All Apps” page.

 

When you launch the application you get the CSipSimple dialer and main page. In the main page you can touch your menu key to pull up an options menu at the bottom of the screen.

Select the “Settings” menu option and you will go to the main settings page. From here you can configure preferences such as network connection and dialer integration.

   

After you modify the application settings select the “Save” option to save the configuration. After saving the configuration you will go back to the CSipSimple dialer/main page. Select “Accounts” and you will have a list of configured accounts as well as the option to add a new account. Choose “Add Account” to create a new account.

 

 The CSipSimple application provides multiple wizards for a wide variety of configurations. In our example, we are going to use one of the Generic Wizards. Unfortunately, the Basic wizard isn’t adequate. You could use the Basic wizard if the CUCM user ID was the same as the assigned extension. In our example, this means that I would need an AD account with a samAccountName of 9165551234 (which is my primary extension).  Now, my opinion is that having a samAccountName equal to a user’s phone extensions presents problems in a production AD environment.

Fortunately, we can use the Expert Generic Wizard. Select “Expert” under Generic Wizards.

With the Expert mode, you have to modify multiple parameters. In our example, we would modify the following:

  • Account name: Whatever label you wanted to use to describe the account (e.g. Cisco)
  • Account ID: We have to account for the extension we assigned to the SIP device and the host (or DNS SRV name) for the SIP registrar (i.e. the CUCM). In our example, we would use: 9165551234
  • Registration URI: This would identify the CUCM registration server (or DNS SRV). In our example, “sip:10.3.4.20”
  • Realm: Set this to “*”
  • Username: Set this to the CCMUser name (or LDAP account, e.g. AD samAccountName) assigned to the user who owns the device. In our example: “mysipuser”
  • Data (password): Set this to the SIP digest that is assigned to the user account in the CUCM End User configuration page.

After configuring the account, choose “Save” to save your settings. Once you save an account you will see it listed with other accounts you have configured. The CSipSimple interface will also show the account registration status. You can also touch the settings icon next to the account name to enable/disable the account.

 

Testing the Application

Hit the “Back” button twice to go back to the CSipSimple main page and dialer. From the dialer, dial one of your internal extensions. In our example, we dial 45070, which is one of the Unity Cluster pilot numbers.

   

Further Testing

At this point, I have only tested basic call functionality. I am not going to go into my opinions on the client’s aesthetics or general usability. I plan on conducting more tests and will update this article as needed.

A Word on the Screen Shots Used in this Article

While not directly related to this blog in any way, I did want to share how you can grab screen shots from the Droid Incredible. It is a very easy find on Google. I happen to use a Mac, so I found the following blog to be very helpful: How to Take Screenshots of the Droid Incredible in Mac OS X.

2 responses to “Droid SIP Clients and Cisco CUCM – CSipSimple Example

  1. Amazing….thank you very much, i was facing issues with cisco jabber on my s2 plus, now with this app and your incredible way of explanation gave me success. thank you very much Mr.William

  2. Account name: It’s done already
    Account ID: May I fill it with any words
    Registration URI: May I fill it with my CUCM server ?
    Realm: Set this to "*"
    Username: It’s done already
    Data (password): I don’t know the digest. Where can I found it?

Leave a Reply

 

Nick Kelly

Cybersecurity Engineer, Cisco

Nick has over 20 years of experience in Security Operations and Security Sales. He is an avid student of cybersecurity and regularly engages with the Infosec community at events like BSides, RVASec, Derbycon and more. The son of an FBI forensics director, Nick holds a B.S. in Criminal Justice and is one of Cisco’s Fire Jumper Elite members. When he’s not working, he writes cyberpunk and punches aliens on his Playstation.

 

Virgilio “BONG” dela Cruz Jr.

CCDP, CCNA V, CCNP, Cisco IPS Express Security for AM/EE
Field Solutions Architect, Tech Data

Virgilio “Bong” has sixteen years of professional experience in IT industry from academe, technical and customer support, pre-sales, post sales, project management, training and enablement. He has worked in Cisco Technical Assistance Center (TAC) as a member of the WAN and LAN Switching team. Bong now works for Tech Data as the Field Solutions Architect with a focus on Cisco Security and holds a few Cisco certifications including Fire Jumper Elite.

 

John Cavanaugh

CCIE #1066, CCDE #20070002, CCAr
Chief Technology Officer, Practice Lead Security Services, NetCraftsmen

John is our CTO and the practice lead for a talented team of consultants focused on designing and delivering scalable and secure infrastructure solutions to customers across multiple industry verticals and technologies. Previously he has held several positions including Executive Director/Chief Architect for Global Network Services at JPMorgan Chase. In that capacity, he led a team managing network architecture and services.  Prior to his role at JPMorgan Chase, John was a Distinguished Engineer at Cisco working across a number of verticals including Higher Education, Finance, Retail, Government, and Health Care.

He is an expert in working with groups to identify business needs, and align technology strategies to enable business strategies, building in agility and scalability to allow for future changes. John is experienced in the architecture and design of highly available, secure, network infrastructure and data centers, and has worked on projects worldwide. He has worked in both the business and regulatory environments for the design and deployment of complex IT infrastructures.