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 follows.

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 Notification.
  • http://$server/offhook/yealink?device=$mac&local=$local&model=$model
  • http://$server/onhook/yealink?device=$mac&local=$local
  • http://$server/incomingcall/yealink?device=$mac&local=$local&remote=$remote&displayremote=$display_remote
$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 method).

$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 Amego.
  • http://$server/outgoingcall/yealink?device=$mac&local=$local&remote=$remote&displayremote=$display_remote
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.
  • http://$server/callestablished/yealink?&device=$mac&local=$local
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.

http://$server/callterminated/yealink?device=$mac&local=$local

Log On, Log Off, Registered, or Register Failed are used to determine which telephone lines are available.
  • http://$server/logon/yealink?device=$mac&local=$local
  • http://$server/logoff/yealink?device=$mac&local=$local
  • http://$server/registered/yealink?device=$mac&local=$local
  • http://$server/registerfailed/yealink?device=$mac&local=$local
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.