Help For Blink Pro

Version 18 (Tijmen de Mes, 06/25/2012 12:20 pm) → Version 19/162 (Tijmen de Mes, 06/25/2012 12:21 pm)

h1. Help for Blink Pro on MacOSX

Blink allows you to communicate in real time over the Internet. To use Blink you need a SIP account from a SIP service provider. Same like using an email program, you must configure Blink with the account you have obtained from your service provider. If things do not work they way you expect, the reasons can be caused mainly by two things, one is Blink software itself and the another one is the communication with the SIP Service Provider.

While Blink may not be bug free, most of the problems you encounter when using Blink are related to the network communication with the SIP Service Provider. It is not the end-user who should understand the mechanics about how things work, so the main responsibility of making sure that things work correct falls into the hands of the SIP service provider who must properly setup its SIP infrastructure and support its user base.

h2. Refund Policy

Mac App Store does not provide refunds. If you purchased an application that do not like you are stuck with it. If you are not happy with this policy is Apple you must complain to, not us.

h2. Service Provider Problems

If you encounter connectivity problems like inability to receive incoming calls or failure to make outbound calls, you can find the reason by going to _Menu Window -> Logs -> SIP_. You should contact your SIP Service Provider and provide it with the information obtained from Blink logs.

h2. Software Problems

To report a problem, send an email to support@ag-projects.com. Please paste the relevant logs as explained below.

You can also check the history of the public Blink Support Forum.

h3. Critical Errors

If you experience a software crash, please send the complete crash report available in the crash reporter window (just copy and paste from it). Crash reports are saved in _~/Library/Logs/DiagnosticReports/_.

h3. Non-Critical Errors

Non-critical programming errors are logged in the system log file _/var/log/system.log._ You can isolate the entries by opening _Applications -> Utilities -> Console_, selecting _LOG FILES -> system.log_ and typing Blink in the search bar. Please provide us with this information when you report the problem you encountered.

h3. Configuration File

Blink accounts and settings are stored in a flat-text configuration file. The location of the configuration file is _~/Library/Application Support/Blink Pro/config_. Do not edit this file manually. If you did and Blink does not start you must delete the file and start all over again.

Please report your OS name and version and Blink version. You can find Blink version in menu _Blink -> About_.

h2. SIP Accounts

!http://icanblink.com/images/BlinkScreenshot-Enrollment.jpg!

To use Blink, you need a SIP Account. At first start, Blink shows the Add Account window that helps you configure the initial SIP Account.

If you do not have a SIP Account, Blink can create one for you using the free service provided by SIP2SIP. For more information about the features of the SIP service go to http://sip2sip.info

If you already have a SIP Account from a SIP service provider, select this option then enter the SIP address in the form of user@domain and the password. If the SIP service provider has set his infrastructure correctly, all server address settings will be automatically discovered by Blink. If the SIP service provider was not capable of doing this, you may need to set some of the settings like server address, port and transport protocol manually, see the advanced settings section below.

You may configure Blink to use multiple SIP Accounts. To add a new SIP Account, go to menu Preferences->Accounts and click the + button. The Add Account window shows up and you can repeat the steps described above.

After you have configured an account, you can see the status of the registration in the account list of Main Window window. Solid color means that the account has successfully registered, gray color means that the registration has failed or is in progress. You can also see the status of the registration in the account list of Preferences window. Green color means that the account has successfully registered, Red color the registration has failed and Yellow means that he registration process is in progress.

A successful registration means that you are able to receive incoming calls with Blink.

h3. Advanced Account Settings

h4. Outbound Proxy

If the SIP provider does not have proper DNS records set for his domain to point to its SIP server address and port numbers as defined by RFC3263, Blink will not be able to auto-discover its location. In such case you must set the Outbound Proxy setting in Preferences -> SIP Account -> Advanced -> SIP Signaling. Also you can use this setting to force a specific transport or port different than the ones discovered from DNS. The outbound proxy format is host.example.com:5060;transport=udp.

h2. Main Interface

!http://icanblink.com/images/BlinkScreenshot-Contacts.jpg!

Blink presents a Contacts driven interface as the main window. The design allows to locate a Contact then to start an action for it, for example to start an Audio Call. You can toggle to and from a dial-pad interface in the Contacts menu.

The main interface can be collapsed into a compact mode that hides the Contact List or dialpad. Click on the + Green button of the window to collapse and expand the main interface.

Hover the mouse over the GUI elements to see a short description of their function.

h3. SIP Account

You can select the SIP Account used for outbound sessions in the Accounts drop down box presented on the top of the main interface.

h4. Bonjour Account

Bonjour Account is a special type of account that is designed to announce itself and discover other neighbours on the local area network. This account does not require a server or SIP service in order to operate.

h3. Search Bar

The Search bar is used for finding an existing contact or for entering a SIP address or telephone number.

To search for a contact in Blink's Contacts List, system Address Book and optionally configured LDAP directory of the active account, fill in the name in the Search Bar. You may select a Contact that matched the typed text or use the typed text as the Contact for the next action.

Use the buttons presented at the bottom of the main window to start a session to the current selected Contact or press on Add Contact to add the typed address to the Contacts List.

Pressing enter or return after entering text in the search bar will start an audio call to that address.

h3. Contacts List

Contacts can be organized in Groups. The Groups support ordering and can be collapsed or expanded when clicking on their left-side triangle. Groups can be dragged in different order. Contacts can be dragged from one group to another.

Right click on a Contact to see all possible actions for each of them.

h4. Address Book

The group named Address Book cannot be deleted, it is dynamically populated with entries from the system Address Book. To reload changes made in the Address Book collapse and expand the group again.

For Address Book entries, to have a SIP Address recognized by Blink you must have entries in either Email or URL sections that start with the sip: prefix.

One can initiate an audio call using Blink Pro directly from the AddressBook application by clicking on the Phone, Email or URL fields of an AddressBook contact. For this you must install the AddressBook plugins available at:

http://download.ag-projects .com/BlinkABPlugins/

The plugins work with Blink Pro version 1.8.2 or newer.

h4. Bonjour Neighbours

Bonjour Neighbours appear in the Contacts List as a separate Group. When selecting Bonjour as the default account, Bonjour Neighbours group is expanded and moved on top of the Contacts list. When changing back to a regular SIP Account, the groups in the Contacts list reshuffle to their previous positions.

Chat sessions are automatically accepted from Bonjour Neighbours.

Audio sessions can be automatically accepted based on the correspondent setting from Account menu.

h4. Edit Contact

You can edit a Contact by right clicking on it and select Edit menu option. Edit Contact window appears. To set the Icon for the Contact, click on the Icon area, a file selection dialog appears.

h4. Add Contact

You can add a Contact to the Contacts List by clicking on the + button presented on the bottom left of the main interface. Add Contact window appears.

h4. Server Storage

If a contact is associated with an account and the SIP service that provides the account has XCAP storage capabilities, the contact is then also stored on the XCAP server. Multiple Blink instances can be synchronized in real time by using this feature.

h4. Special Groups

In Preferences Contact section, special groups like Favorites or Missed Calls can be enabled.

h3. Start Session

Use the buttons presented at the bottom of the main window to start a session to the current selected Contact.

Clicking on Return key or double-clicking a Contact will start the default session type depending on the preferred media configured for each Contact. The default action is to start an Audio Call.

h2. Alert Panel

!http://icanblink.com/images/BlinkScreenshot-AlertPanel-DS.jpg!

Incoming session requests bring up the Alert Panel. Click on the Accept Button to accept a session request. There are two options for rejecting an incoming session request:

* Click on the Reject button. The session is rejected with SIP response code 603 and all other SIP devices registered for the same account stop ringing. Forwarding to voicemail or other destinations, when available in the SIP server is also cancelled. You must use this option to terminate all call processing associated with the request.
* Click on the Busy button. Blink sends a 486 code back to the caller and stops ringing, other SIP devices keep ringing and forwarding to other destinations remains active as set in the SIP server. You must use this option when you want to pick up the call at a different location or allow the Server to perform other pre-configured routing decisions.
When the Answering Machine is enabled, a countdown appears in the Alert Panel. While the countdown counts you can still disable the Answering Machine from the Account menu.

The currently selected input and output audio devices are showed for incoming Audio Call requests.

h2. Audio Calls

!http://icanblink.com/images/BlinkScreenshot-AudioSessions.jpg!

Audio Calls are displayed in the lateral drawer attached to the main interface.

To start an Audio Call, select an existing contact or enter a SIP address or telephone number in the search bar. Once text is entered in the search bar just press enter to start an audio call to that address. Alternatively, you can turn on the dialpad in the Contacts menu and press its keys.

When a Contact is selected, you may click on the Green Handset located at the bottom of the main interface or right click on thr Contact and select Start Audio Session from the contextual menu. For each new call an entry is added to the Audio Calls drawer.

To switch between multiple calls just click on another call in the audio sessions drawer. When switching to a particular session, the audio stream is connected to the input and output device and all other Audio Calls are put on hold.

To add Chat to an existing Audio Call, right click on the session displayed in the Audio Drawer and select an Add Chat

To mute your microphone click on the bottom right microphone icon. To un-mute click it again.

h3. Codecs

Audio codecs can be set in Preferences -> Advanced -> RTP Media section and can be overwritten per account in Advanced -> RTP Media section. By default, the audio codecs are prioritized to allow for highest quality and second, compatibility with SIP services.

If you have changed the defaults or want to set the codecs manually, for high quality conversations is recommended to use G.722 codec as first choice and leave PCMA and PCMU enabled for compatibility reasons. Some details about the codecs used by Blink:

* G.722 is the most compatible wideband codec supported by both software and hardware phones
* Speex is another high quality codec that works with many soft phones
* PCMA and PCMU are the most interoperable codecs that work with almost any device
* GSM and iLBC use less bandwidth than the other codecs but they have less support in service provider equipment

h3. DTMF

Dial tones are used to interact with PBX and IVR systems or legacy PSTN gateways. To send DTMF tones, focus the Audio Call by clicking on it. The current call is already focused if you just started it. What you then type on the keyboard is automatically translated into DTMF tones. Alpha-numeric keys are translated into numeric DTMF keys as they are on a numeric telephone keypad. Also you may use the dialpad for this purpose.

If a telephone number with a # sign is dialed, what comes after the # sign will be automatically entered as DTMF codes once the call is connected. Supported DTMF codes are 0-9*#. You can use the comma sign ',' to insert a one second pause (version >=1.5.1).

h3. Hangup

To hangup click on the Red handset displayed for each Audio Session in the right hand side of the drawer or press the Escape key.

h3. Hold/Unhold

The shortcut key for hold and unhold of the selected session is Space.

h3. Record

To record click on the Black circle. While recording, the circle will toggle between red and black. Recorded sessions can be found in menu Audio -> Recordings.

h3. Transfer

To blindly transfer a call, just drag it to a contact in the Contacts list. You can also enter a number or address in the search bar, to transfer a call to an arbitrary address.

To perform an assisted call transfer, first establish a call to each party. Then, click on the T button for completing the transfer, a contextual menu is presented.

h3. Call History

History of previous sessions is available in the History menu. If you have registered a SIP Account with Blink, you can review the missed calls while Blink was off-line in Account-> Settings on SIP Server -> History menu.

h3. Redial

To redial the last session type Command-R, to redial a previous session select it in the History menu.

h3. iTunes Integration

iTunes automatically pauses playing before any Audio Call pauses and resumes playing after all Audio Calls have finished.

h3. Audio Information

!http://icanblink.com/images/BlinkScreenshot-ICE.jpg!

Audio Calls have status indication about the progress of establishment of the RTP stream and ICE negotiation, the negotiated codec and the presence of encryption for signaling and media.

The RTP end-points and negotiated ICE candidates (when ICE negotiation succeeded) are displayed when hovering the mouse over the Audio codec information area.

h3. Calling Telephone Numbers

To dial a telephone number, just enter the number in the Search Box followed by Enter or Return key.

When dialing numbers by selecting entries from the Address Book it is recommended that you store your numbers in international E.164 format (that is + sign followed by the country code then the subscriber number).

You can set in the account Advanced -> Phone Numbers preferences section how to replace the + sign with another prefix recognized by your SIP service provider or PBX. For example if you set Replace Starting + with 001, when you dial +44XXX the number will be dialed as 00144XXX.

Optionally, phone numbers can be also prefixed before dialing out, for example if a 9 is required by your PBX by setting the External Line Prefix option.

If you have created a SIP Account with Blink, you can call to PSTN numbers if you must have a positive credit. You can use a Credit Card to add Credit to your SIP Account in menu Tools -> Call To Phone Numbers.... You may request the assignment of a PSTN Caller Id by opeing a ticket in the server support interface. Recognized number formats are + or 00 followed by the Country Code and then Subscriber Number.

If you use another SIP Account than the one provided by Blink, access to the PSTN is subject to the support provided by your SIP service provider. The number format depends as well on the conventions imposed by the SIP service provider in question.

h3. Voicemail

Voicemail is a feature provided for SIP accounts created by Blink. It is provided by the network while Blink is offline, when the call forwarding to Voicemail is activated. To change the settings of your SIP2SIP voicemail box dial 1233. You can record your unavailable message and listen to your messages stored on the server. The voicemail delivered method (by email attachement or by dialing into the server) is set in menu Tools -> Settings on SIP server in the Voicemail section.

h3. Answering Machine

When the Answering Machine is enabled, Audio Call requests will be automatically answered with either the standard or the custom recorded message after the delay configured set in Preferences -> Answering Machine settings.

You can enable the Answering Machine using the menu item Tools -> Enable Answering Machine. The incoming Audio Calls are then recorded and can be listened to later in Tools -> Recordings menu.

While the Answering Machine is handling an Audio Call, you can hear what the remote party is speaking while your microphone is muted. If you wish you can take over by clicking on the Green Handset icon in the Audio drawer. The recording stops and the session is connected to the microphone.

h3. Audio Conference

!http://icanblink.com/images/BlinkScreenshot-AudioConference.jpg!

Drag and drop Audio Calls on top of each other to create a Conference or use the button presented at the botton at the Audio Drawer to start a Conference with all active Audio Calls.

Add new participants to a Conference by dragging Contacts from the Contacts list onto an Audio Call.

Each participant can be muted individually by pressing on the microphone symbol that appears on each conferenced session.

To end an Audio Conference drag the session out of the conference area or press the Conference button again.

There can be only one active Audio Conference at any given time.

h2. Chat Sessions

Chat Sessions are displayed into the Chat window. For each recipient there is a new Tab created at the bottom of the window. The Tabs are matched based on the SIP Address of the recipient and the Chat Aliases configured for the Contacts.

The lateral drawer display the active participants present in the chat session or multi-party conference.

Chat Sessions are encrypted using TLS and handled like the Audio Sessions, a Chat Session is established only to the device where the user accepts the session. Chat sessions can carry arbitrarily large amounts of text information.

You can start a Chat Session by right-clicking on a Contact and chose Start Chat Session.

Messages typed before the session is accepted by the remote party are queued and delivered once the session has been established. If the session fails to establish, the undelivered messages will be resent at the next successful attempt.

Message marked with a red color background have failed to be delivered.

To an established Chat Session you can add Audio or start a Screen Sharing session by clicking on the buttons presented on the toolbar.

To review previous chat conversations go to menu History -> Chat Conversations.

To insert an empty line use Shift-Enter combination.

The rendering of Emoticons can be disabled in each chat window, this can be useful to transfer programming code snippets without interpreting the special characters as emoticons.

h2. Short Messages

Short Messages is the way to interact with legacy SIP IM clients that do not support session based Chat Sessions using MSRP protocol.

Short Messages end-up on all SIP devices registered for the remote SIP Account, including hardware phones that accept such messages but do not display them, the recipient has no control where to receive them. Short Messages have no end-to-end delivery report and cannot be encrypted the way Chat Sessions are.

A Short Message cannot exceed 1300 characters on IP networks and 160 on PSTN mobile networks.

You can send a Short Message by right-clicking on a Contact and chose Send SMS.

Previous exchanged messages can be reviewed in the menu Window -> Chat History.

h2. File Transfers

To send a file you can use drag and drop from Finder or other application like iPhoto onto a Contact, to a Chat Window or by right clicking on a Contact and then selecting Send File... option.

File Transfers are displayed in a separate window. Each file has a progress bar attached with estimated transfer speed and remaining time.

h2. Screen Sharing

Screen Sharing is implemented by using standard VNC protocol over an MSRP connection. The minimum bandwidth required for a reasonable experience us 1 Mbit/s. Make sure that all debugging is disabled during Screen Sharing as it can overload the CPU.

The party sharing the Screen must have enabled Screen Sharing in System Preferences and set the option Anyone may request permission to control screen in Computer Settings section of the Share Screen panel.



h3. Screen Sharing Party

First Blink alerts the user about an incoming request for Screen Sharing. If accepted, MacOSX VNC server will asks to confirm the Screen Sharing request. The request originates from the localhost (127.0.0.1) as the connection runs through Blink.

!http://icanblink.com/images/BlinkScreenshot-ScreenSharingServerConfirmation.jpg!


h3. Screen Viewer Party

The party asking for Screen Sharing must select the option 'Connect by Asking for Permission' when prompted by the VNC viewer.

!http://icanblink.com/images/BlinkScreenshot-ScreenSharingClientRequest.jpg!

h2. NAT Traversal

For NAT traversal you must rely on your SIP service provider. In general, every SIP service provides relaying for both signaling and media, which takes care of the NAT issue. This means that no special settings are necessary in the client.

h3. Audio

For Audio Calls you can enable the use of ICE negotiation in Advanced -> NAT Traversal -> Use ICE. ICE requires the presence of STUN servers, they must be provided by the SIP service provider. The ICE negotiation details are displayed in RTP Logs window. While the ICE negotiation progresses, its status is also displayed in the Audio Call information, for example the gathering of ICE the candidates and the probing of the remote candidates.

Once the audio stream is established, the audio information area is updated with the negotiated codec type and the sample rate. The active RTP end-points and the ICE candidates types are displayed while hovering the mouse over the audio status information area.

h3. IM and File Transfers

To traverse the NAT for MSRP related sessions (Instant Messaging, File Transfer) a MSRP relay configured for the called party domain is needed. The SIP service provider that provides the SIP Account must support this feature (e.g. http://sip2sip.info).

h3. Screen Sharing

To traverse the NAT for Screen Sharing sessions a MSRP relay configured for the called party domain is needed. The SIP service provider that provides the SIP Account must support this feature (e.g. http://sip2sip.info).

h2. Growl Notifications

Growl notifications are raised for missed sessions and the Dock Icon badge is updated with the number of missed sessions.

When sessions are accepted elsewhere and the SIP server supports the Reason header, the sessions will be logged in the incoming section rather than the missed section.

h2. Logs

Logs Window helps troubleshoot network traffic for various protocols used by Blink. For example, one can follow in the self scrolling interface the time sequence of all DNS lookups and SIP messages exchanged with the other end-points.

To see what Blink is doing under the hood go to the menu Window -> Logs. It is advisable not to leave MSRP Trace and Notifications Logs turned on unless you really need them for debugging purposes, they are very demanding in terms of CPU load during File Transfer and Screen Sharing sessions.

h2. Server Settings

!http://icanblink.com/images/BlinkScreenshot-DND.jpg!

Blink is integrated with the SIP2SIP server functionality. One can change settings directly on the SIP server like Call Forwarding, Do Not Disturb, list of last missed sessions and other settings.

The settings are displayed in Server Settings window. The window is actually a web interface that loads the URL configured in the Advanced -> Server -> Settings URL for each SIP Account. The remote web server can support digest authentication, Blink sends the SIP Account credentials when prompted by the server.

h2. Audio Devices

Blink auto-detects audio devices there are plugged in and out on the fly and prompts the user to switch to a new added device. You can switch automatically by setting this option in Preferences -> Audio section.

To selected a particular audio device use the menu Audio.

h2. Preferences

!http://icanblink.com/images/BlinkScreenshot-Preferences.jpg!

To change Blink configuration go to menu Preferences. The Preferences window appears.

Find out more information about a particular setting by hovering the mouse over it.

Each SIP Account has advanced options available, to reveal them click on the small triangle presented under the SIP Address.

Blink preferences are stored in ~/Library/Application Support/Blink Pro folder. You can reset Blink by deleting this folder.

Blink SIP accounts and settings are stored in ~/Library/Application Support/Blink Pro/config file.

GUI preferences are stored in ~/Library/Preferences/com.agprojects.Blink.plist file. (e.g. size, location of the windows and other MacOSX related settings).

If you ever want to move your Blink configuration to another login account you must edit the content of your config file and replace the absolute file paths accordingly. You can edit this file with any text editor as long as you do not break the return lines and formatting of the file.

h3. Codecs

Blink supports G722 and Speex wide-band codecs. The order of the codecs can be configured in menu Preferences -> Advanced -> RTP Media and for each SIP Account in Preferences -> Accounts -> Advanced -> RTP Media.

h3. Open Browser on Incoming Call

You can configure Blink Pro to automatically open a web browser on an incoming call event. For this set the Alert URL in Preferences -> Advanced -> Server Settings section.

The URL may contain the following variables that will be replaced with the actual information from the incoming session:

* $caller_party - the SIP address of the caller party
* $called_party - the SIP address of the account being called

Example: http://www.example.com?caller=$caller_party&called=$called_party

h2. History Database

Blink stores the history of sessions and chat messages in a Sqlite database. The location of the database is:

<pre>
~/Library/Application Support/Blink Pro/history/history.sqlite
</pre>

If for any reason the database becomes corrupted, which may manifest itself by errors reported graphically by Blink itself or in the Console application you may work around the problems in several ways.

First, backup your database in case you need the uncorrupted data in the future. You can do this by copying the history.sqlite file to another location. The file can be opened in Terminal application using sqlite3 program. You can dump the old data in the corrupted database as follows:

<pre>
#:~/Library/Application Support/Blink Pro/history$sqlite3 history.sqlite
SQLite version 3.7.7 2011-06-25 16:35:41
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> select * from sessions;
sqlite> select * from chat_messages;
</pre>

h3. Restore Procedure

Try the following in this order to solve a data corruption problem:

* Clear the session history table, go to menu History-> Clear History. The session table will be emptied and the chat messages are not affected. Restart Blink.
* Stop Blink. Remove history.sqlite file, the history database will be recreated at start time. Use the backup file for reading the old data using the sqlite3 command line utility.