Several popular IP phones allow you to configure generic URLs to notify an application server of
telephone events. Phone Amego can recognize these notification events to provide on-screen call
status and call logging. This technique can be used with contemporary IP phones made by
Aastra, Snom, Yealink, and possibly others by adding a small configuration file. Phone Amego
makes it easy to configure these phones from the Caller ID tab as shown for Yealink IP phones.
The web user interface will vary somewhat depending on your phone, but the basic steps are as
1. Point your web browser at the IP address of your phone http://ipAddress.
To show the IP address of your phone, use the buttons on your phone to navigate to
"Menu -> Status".
2. Login with your username and password.
For Yealink, the defaults are username "admin", password "admin".
For Aastra, the defaults are username "admin", password "22222".
3. Find the setup page to specify Action URLs (sometimes called Action URIs).
4. Copy and paste the corresponding URL for each action.
Copy from the Local HTTP Server box under the Caller ID tab in Phone Amego,
and paste to the corresponding field in your web browser.
5. Once you have entered the URL for each telephone event,
scroll down to the bottom of the page and press "Confirm" (or submit).
It may take a few moments for your phone to update its settings.
6. Within Phone Amego, press and hold the Control key on your Mac keyboard while you
pickup the handset on your phone. When Phone Amego sees the "Off-hook" event with
the Control key down, it will add your phone to the telephone devices table and should
then be ready to recognize call events.
If you have questions about getting this to work, please open the Debug Log under the More tab
to see the notification events your phone is sending to Phone Amego, then contact us for
assistance as needed.
Call Notification Events
(Intended for experts wanting to add support for other IP phones)
Generic Notification URLs are defined in ".plist" files stored at:
~/Library/Application Support/Phone Amego/GenericNotificationURLs/
If your phone allows dialing with a Generic Dial URL, you can include this in the same file.
Different phones or firmware versions may support slightly different call notification events. By
capturing the events listed below, Phone Amego is better able to track call status including call
duration and phone line used for both incoming and outgoing calls whether placed through
Phone Amego or not.
The basic events every phone should support are Off Hook, On Hook, and Incoming Call
$server is replaced by the address and port of the local HTTP server by Phone Amego. The other
variables beginning with "$" are intended to be substituted by the phone. The URL path itentifies
the event (like "off hook") followed by a "/" and the type of phone (such as "yealink" which
allows Phone Amego to coordinate other information about this phone such as the dialing
$mac is used to identify the Ethernet MAC address of the phone when available, otherwise
Phone Amego will try to determine this from the user agent string.
$model is used to identify the phone model (when available).
$local is the local URI (your phone number).
$remote is the remote URI (peer phone number)
$display_remote is the remote display name (name of the caller)
Outgoing Call Notification lets Phone Amego detect calls you didn't dial through Phone
Call Established lets Phone Amego detect when a call you have dialed has been answered by
the remote peer. This may be used to dial an extension by sending Touch-Tones if desired, or
track calls that were not answered.
Call Terminated lets Phone Amego know when an individual call ends even if the call didn't go
through, or the handset is not put back on-hook.
Log On, Log Off, Registered, or Register Failed are used to determine which telephone lines
If you add support for another IP phone, I'd love to include this with Phone Amego. In my
experience, the best telephone integration combines instant notification with polling to ensure
synchronization even if some notifications are lost.