Does anyone know if it is possible to have a startup script on a user's PC to automatically log into their phone with Extension Mobility? I don't know if this is possible, but thought I would ask. My thinking is that the user logs into their PC and a startup script detects the phone that they are connected to and automatically logs into it with Extension Mobility using their "windows username" and configured PIN without user interaction. I assume if there is an API on CUCM for this that it may be possible.
The reason I ask is that we have UCCX agents that hotel and they need to first log into their phone with Extension Mobility and then log into CAD. I would like to remove a step from their login procedure if possible. Typing your username into the phone interface is not a pleasant experience.
If this isn't possible, then I think it would be nice to have autofill capability on the IP phones as they are typing their usernames. This would benefit Extension Mobility users that frequeantly use the same phone.
It looks like this is possible. I will just need to figure out how to get the device name from the connected IP phone. Then the application would need to send that with the other pertinent information to CUCM. It would also need to be able to process the status messages received from CUCM. Has anyone written such an app? Ideally, the app would be able to auto-fill the username from the Window's credentials and ask for the PIN which would be saved for the next login and only ask the user for it again if CUCM returns a login failure.
Here is a link with information about the Extension Mobility API.
I have worked a small test for this exact same scenario. It's basic, but it's workable.
This could certainly be improved upon.
I don't link the source code in the youtube video, but I will post it here as soon as I get to my personal computer.
EDIT: Source is now attached
Thanks for the info. Did you have to install the callmanager certificate on your PC? I was thinking this was a requirement to communicate with callmanager. Because of this, I was thinking it would be preferred to have a server communicating with callmanager and an app client on the user PC communicating with the web server. That way there is only one place to maintain the certificate for x number of users. I could be wrong about this.
Ideally, the web service on the server would query the user's PC, to see which phone it is connected to, using CDP through an activeX control if possible. It would also use the last used username along with the learned phone name (SEP+MAC) and query callmanager to determine if the user is already logged into that phone. If so, it would just minimize into the notification area.
If the user is not logged into that phone, then it would log the user in to the attached phone using the last stored username / PIN that the user supplied to the app and then minimize.
If a different user is logged into that phone, it would log that user out and then log in the current user.
If there is a login failure message during the automated login, it would then prompt the user for username/PIN instead of minimizing to the notification area.
I feel so, bad about requiring agents to log into their phones, but because of the current requirement, I have to do it this way. It is no picnic typing your username using the key pad. I would love to automate this for them.
NOTE: If the callmanager certificate is required to be loaded on the user's PC, I'm sure the Window's admins could push it through group policy.
I run a vanilla CUCM installation and no, I don't install any certs on the PC.
If all you are worried about is the Agent typing in their username/PIN, you coudl write a proxy that only asks for phone extension.
Can you explain how the proxy works? I saw in the video that you entered the extension 1001 which is the extension of the phone being logged into. Once you authenticated, you had extension 2001. How did the proxy determine which user was logging into the phone and which profile to load?
MARK BAKER wrote:
I saw in the video that you entered the extension 1001 which is the extension of the phone being logged into. Once you authenticated, you had extension 2001.
I wasn't forward thinking enough when I made the video, and I state in the videos comments:
** UPDATE: I realize that logging in with extension 1001 as opposed to 2001 could seem confusing. Just focus on the fact that it worked, and not what I typed in. I don't feel like remaking the video just to login with extension 2001. Sorry!
So, the way it works is by utilzing two things: AXL API and EM API.
The AXL API is simply a way to query CUCM to find out what user has the given extension setup as their primary enxtension, so that you can translate it to a username.
The EM API allows you to use a special user account, called the EM proxy account, which allows you to login any user on their behalf. A good use case for this is a hotel with preferred guests. When you check in at the front desk and receive a room key, the computer system send an EM proxy request to login your UDP to the phone, so by the time you walk in to the room, the phone has your name on it, your speed dials, etc.
The glue that holds this all together is a custom web service that sits inbetween the phone and the CUCM, and proxies the phones EM login/logout requests.
The flow looks like this for a login or logout:
Phone -> HTTP -> My Web Server -> AXL/EM API -> CUCM
Then CUCM instructs the phone to perform the requested action.
We created a client application (also available for thin clients) that allows you to automatically login your attached Cisco phone, based on your Windows login credentials.
For more information see also https://www.rsconnect.net/en/solutions/documentation/alm-documentation/