Help For Blink Pro
Version 147 (Adrian Georgescu, 02/04/2014 12:26 pm) → Version 148/162 (Adrian Georgescu, 02/04/2014 12:27 pm)
h1. Help for Blink Pro and Blink Lite for OSX
For help on Blink QT go "here":http://projects.ag-projects.com/projects/blinkqt/wiki/Help
[[KnownIssues|Known issues and critical bug fixes]]
[[MostEncounteredProblems| Most Encountered Problems]]
Blink allows you to communicate in real time over the Internet. To use Blink you need a SIP account from a SIP service provider. 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. No refunds
If you purchased an application on Mac App Store that you are not happy with you are stuck with it. If you are not happy with this policy it is Apple you must complain to, not us as they made these rules.
h2. Requesting Support
h3. Public Forum Discussions
Go to "Blink Support Forum":http://support.icanblink.com
h3. Support from Developers
If you need support for a particular problem you can mail us directly to support@ag-projects.com. Please try this as a last resort as the answer may already be available on the discussion forum or other users may have encountered your problem while the developers may not.
h3. Placing Calls Problems
To eliminate possible causes related to local network or service provider, please check if the problem can be reproduce by using the Free SIP Accounts provided with Blink.
If you are unable to receive incoming or place outgoing calls do the following:
* Make sure you run the last version available in the Mac App Store.
* Go to _Menu Window -> Logs -> SIP_
* Make sure the box *Everything* is checked and from the drop down box is selected *Sessions*
* Restart Blink
* Attempt to make the call
* Paste all logs from both the SIP and the Activity Logs windows into an email to support@ag-projects.com
h3. Non-critical Errors
Blink errors are logged in the OSX system log file _/var/log/system.log_. You can find them 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. Software Crashes
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. Configuration File
Blink accounts and settings are stored in a flat-text configuration file.
* Pro version: ~/Library/Containers/com.agprojects.Blink/Data/Library/Application Support/Blink Pro/config
* Lite version: ~/Library/Containers/com.agprojects.BlinkLite/Data/Library/Application Support/Blink Lite/config
* SIP2SIP version: ~/Library/Application Support/SIP2SIP/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_.
Passwords are not stored in the configuration file but in the system keychain.
h2. Differences between Pro and Lite versions
Compared to Blink Lite, Blink Pro has the following extra features:
* OSX Integration (iCloud, iTunes, Address Book, Key Chain, Voice Over)
* Unlimited number of accounts
* History browser for all media
* Phone number translations
* Call transfer
* Call recording
* LDAP server support
* Incoming call web page integration
* AddressBook plugin
* More granular settings
SIP2SIP version is equivalent with Pro version but it can only use one account from sip2sip.info service.
h2. Refund Policy
If you purchased an application on Mac app Store that you are not happy with you are stuck with it. If you are not happy with this policy it is Apple you must complain to, not us as they made these rules.
h2. SIP Accounts
To use Blink, you need a SIP Account. At first start, Blink shows the _Add Account_ "window":http://icanblink.com/screenshots.phtml#enrollment that helps you configure the initial SIP Account.
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 a SIP 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. Add an Existing SIP Account
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 entering the SIP address and password.
Unfortunately, most SIP service providers do not tell their users what their SIP address is. Imagine your email provider giving you an account without telling you what is your email address…
The reason for making things complicated is that SIP service providers are either un-willing or incapable of setting up their DNS and SIP infrastructure correctly and confuse users about how to configure their SIP accounts.
Such providers typically provide separate username and server address information instead of a SIP address. The SIP address is composed by concatenating the username part and the server part format with an @ sign. Additional manual settings for the server address, transport and protocols can be made in Advanced Account Settings explained below.
h4. The username
Different SIP service providers may refer to this in such ways, they are all the same thing:
* Username
* Account number
* Authentication Name
* Login name
* Phone number
* Extension number
* Number
h4. The server
Different SIP service providers may refer to this in such ways, they are all the same thing:
* Server name
* Server address
* IP address
* Proxy address
* Outbound Proxy
* Domain
* Realm
* SIP server
* SIP registrar
Concatenate the username part and the server part as follows:
username@server
h3. Create a Free SIP Account
Use this option if you do not have a SIP Account, Blink can create one for you using the free service provided by SIP2SIP. All Blink features are supported by this service.
For more information about the features of the SIP service go to "http://sip2sip.info":http://wiki.sip2sip.info
It is recommended that you always create such account to benefit of the features beyond VoIP provided by Blink. Using a sip2sip.info account you can sync the address book between multiple instances of Blink, bridge to XMPP domains and create multi party conferences.
h3. iCloud sync
The default option is to sync the new account across all computers configured for the the same iCloud account. This means that any changes to any account will be synchronised across all your computers running 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
Blink presents a _Contacts driven_ "interface":http://icanblink.com/screenshots.phtml#main_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":http://icanblink.com/screenshots.phtml#collapsed_gui 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, they are sorted by name.
* Right click on a Contact to see all possible actions for each of them.
* Right click on a Group to see all possible actions for each of them.
h4. Address Book Group
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/":http://download.ag-projects.com/BlinkABPlugins/
The plugins work with Blink Pro version only.
h4. Bonjour Neighbours Group
_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. History Groups
Special groups can be enabled to display Incoming, Missed and Outgoing Calls. Entries can be individually hidden and the period of the calls can be selected
h4. Online Group
This special group displays contacts that have published availability information.
h4. Edit Contact
You can edit a Contact by right clicking on it and select Edit menu option. _Edit Contact_ "window":http://icanblink.com/screenshots.phtml#add_contact 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 groups icon button presented on the bottom left of the main interface. _Add Contact_ "window":http://icanblink.com/screenshots.phtml#add_contact 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. If your particular SIP service does not support XCAP storage, just add a SIP account from within Blink.
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
Incoming session requests bring up the "Alert Panel":http://icanblink.com/screenshots.phtml#alert_panel</em>. 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":http://icanblink.com/screenshots.phtml#audio_sessions 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. Audio 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 OPUS, Speex, G.722 codec order and leave PCMA and PCMU enabled for compatibility reasons.
Some details about the codecs used by Blink:
* OPUS is the best codec choice covering full human audible spectrum and requires between 20 and 60kbit/s network bandwidth. This codec is available in Blink Pro 3.0.
* Speex is a high quality codec that is often built in softphones covering up to 16kHz audio spectrum and requires about 50kbit/s network bandwidth
* G.722 is the most compatible wideband codec supported by both software and hardware phones covering 11kHz audio spectrum and requires about 100kbit/s network bandwidth
* PCMA (G711A) and PCMU (G711U) are the most interoperable codecs narrowband that work with any device covering up to 4kHz audio spectrum (telephone quality) and requires about 100kbit/s network bandwidth
* GSM and iLBC use less bandwidth than the other codecs but they have less support in other devices and cover up to 4kHz audio spectrum and requires up to 40kbit/s network bandwidth
h3. Best Speech Quality
To obtain best audio quality for speech you must:
* Use a wideband codec like Speex, G.722 or OPUS
* Have Acoustic Echo Cancellation enabled in Blink Audio Preferences, this will set the internal sampling rate to 32kHz covering up to 16kHz audio spectrum
* Enable Ambient Noise Reduction in System Sound Preferences, this will remove the fan and other low frequency noises
* If available bandwidth is an issue, use OPUS, Speex, G722 codecs order in Advanced RTP media preferences
You may use any headset or no headset (speakerphone mode).
h3. Best Studio Quality
To obtain best possible audio quality and remove all delays and distortions of the original signals introduced by the computer software and hardware you must do the following:
* Use a high quality headsets and microphones (low delay at least 41000 Hz sample rate)
* Disable Acoustic Echo Cancellation (AEC) in Blink Audio Preferences. This will disable the built-in noise reduction and echo cancellation algorithms as well as increasing the internal sampling rate to 48kHz
* Disable Ambient Noise Reduction in System Sound Preferences
* Use OPUS codec, with the AEC disabled, it will cover up to 20kHz audio spectrum
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). You can use other delimiter by setting it in Phone Numbers advanced section of the SIP Account.
You can paste a string containing 0 to 9 digits, # and * from the Clipboard in the active audio call. These are then sent out as DTMF codes.
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. This functionality does not work when Blink runs in Sandbox mode (starting with Pro version 1.9.0 and Lite version 1.7.0) due to Apple imposed restrictions.
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. Phone Numbers
To dial a phone 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":http://icanblink.com/screenshots.phtml#audio_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 work like Audio Calls in the sense that a session is established after the called party explicitly accepts the invitation and for each message there is a delivery report available. This is different to Send Message, which is a fire and forget action with no guarantees of the delivery.
!http://icanblink.com/images/BlinkScreenshot-ServerConference.jpg!
_Chat Sessions_ are displayed into the "Chat window":http://icanblink.com/screenshots.phtml#chat_sessions. 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. Presence
Presence is a complex topic as it requires specialized infrastructure not all SIP providers posses. See http://projects.ag-projects.com/news/15
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_ are stand-alone entities that operates in a fire and forget fashion. There is no guarantee for delivery or alerting of the final recipient. _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. For guaranteed message delivery and encryption you must use Chat Sessions.
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
!http://icanblink.com/images/BlinkScreenshot-FileTransfer.jpg!
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":http://icanblink.com/screenshots.phtml#file_transfers. 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.
!http://icanblink.com/images/BlinkScreenshot-ScreenSharingServerSetup.jpg!
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":http://icanblink.com/screenshots.phtml#logs_ice. 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":http://icanblink.com/screenshots.phtml#rtp_endpoints 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":http://msrprelay.org 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":http://msrprelay.org 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":http://icanblink.com/screenshots.phtml#logs 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":http://icanblink.com/screenshots.phtml#server_settings. 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":http://icanblink.com/screenshots.phtml#preferences 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 -> Accounts -> Selected Account -> Advanced -> Web Alert_ 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
* $caller_username - the username part of 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
The web page can be opened when call comes in or after it was answered.
The web page can be opened in a Blink window or in the default web browser (check option in _Preferences -> Advanced -> GUI Settings_)
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.
For help on Blink QT go "here":http://projects.ag-projects.com/projects/blinkqt/wiki/Help
[[KnownIssues|Known issues and critical bug fixes]]
[[MostEncounteredProblems| Most Encountered Problems]]
Blink allows you to communicate in real time over the Internet. To use Blink you need a SIP account from a SIP service provider. 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. No refunds
If you purchased an application on Mac App Store that you are not happy with you are stuck with it. If you are not happy with this policy it is Apple you must complain to, not us as they made these rules.
h2. Requesting Support
h3. Public Forum Discussions
Go to "Blink Support Forum":http://support.icanblink.com
h3. Support from Developers
If you need support for a particular problem you can mail us directly to support@ag-projects.com. Please try this as a last resort as the answer may already be available on the discussion forum or other users may have encountered your problem while the developers may not.
h3. Placing Calls Problems
To eliminate possible causes related to local network or service provider, please check if the problem can be reproduce by using the Free SIP Accounts provided with Blink.
If you are unable to receive incoming or place outgoing calls do the following:
* Make sure you run the last version available in the Mac App Store.
* Go to _Menu Window -> Logs -> SIP_
* Make sure the box *Everything* is checked and from the drop down box is selected *Sessions*
* Restart Blink
* Attempt to make the call
* Paste all logs from both the SIP and the Activity Logs windows into an email to support@ag-projects.com
h3. Non-critical Errors
Blink errors are logged in the OSX system log file _/var/log/system.log_. You can find them 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. Software Crashes
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. Configuration File
Blink accounts and settings are stored in a flat-text configuration file.
* Pro version: ~/Library/Containers/com.agprojects.Blink/Data/Library/Application Support/Blink Pro/config
* Lite version: ~/Library/Containers/com.agprojects.BlinkLite/Data/Library/Application Support/Blink Lite/config
* SIP2SIP version: ~/Library/Application Support/SIP2SIP/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_.
Passwords are not stored in the configuration file but in the system keychain.
h2. Differences between Pro and Lite versions
Compared to Blink Lite, Blink Pro has the following extra features:
* OSX Integration (iCloud, iTunes, Address Book, Key Chain, Voice Over)
* Unlimited number of accounts
* History browser for all media
* Phone number translations
* Call transfer
* Call recording
* LDAP server support
* Incoming call web page integration
* AddressBook plugin
* More granular settings
SIP2SIP version is equivalent with Pro version but it can only use one account from sip2sip.info service.
h2. Refund Policy
If you purchased an application on Mac app Store that you are not happy with you are stuck with it. If you are not happy with this policy it is Apple you must complain to, not us as they made these rules.
h2. SIP Accounts
To use Blink, you need a SIP Account. At first start, Blink shows the _Add Account_ "window":http://icanblink.com/screenshots.phtml#enrollment that helps you configure the initial SIP Account.
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 a SIP 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. Add an Existing SIP Account
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 entering the SIP address and password.
Unfortunately, most SIP service providers do not tell their users what their SIP address is. Imagine your email provider giving you an account without telling you what is your email address…
The reason for making things complicated is that SIP service providers are either un-willing or incapable of setting up their DNS and SIP infrastructure correctly and confuse users about how to configure their SIP accounts.
Such providers typically provide separate username and server address information instead of a SIP address. The SIP address is composed by concatenating the username part and the server part format with an @ sign. Additional manual settings for the server address, transport and protocols can be made in Advanced Account Settings explained below.
h4. The username
Different SIP service providers may refer to this in such ways, they are all the same thing:
* Username
* Account number
* Authentication Name
* Login name
* Phone number
* Extension number
* Number
h4. The server
Different SIP service providers may refer to this in such ways, they are all the same thing:
* Server name
* Server address
* IP address
* Proxy address
* Outbound Proxy
* Domain
* Realm
* SIP server
* SIP registrar
Concatenate the username part and the server part as follows:
username@server
h3. Create a Free SIP Account
Use this option if you do not have a SIP Account, Blink can create one for you using the free service provided by SIP2SIP. All Blink features are supported by this service.
For more information about the features of the SIP service go to "http://sip2sip.info":http://wiki.sip2sip.info
It is recommended that you always create such account to benefit of the features beyond VoIP provided by Blink. Using a sip2sip.info account you can sync the address book between multiple instances of Blink, bridge to XMPP domains and create multi party conferences.
h3. iCloud sync
The default option is to sync the new account across all computers configured for the the same iCloud account. This means that any changes to any account will be synchronised across all your computers running 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
Blink presents a _Contacts driven_ "interface":http://icanblink.com/screenshots.phtml#main_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":http://icanblink.com/screenshots.phtml#collapsed_gui 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, they are sorted by name.
* Right click on a Contact to see all possible actions for each of them.
* Right click on a Group to see all possible actions for each of them.
h4. Address Book Group
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/":http://download.ag-projects.com/BlinkABPlugins/
The plugins work with Blink Pro version only.
h4. Bonjour Neighbours Group
_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. History Groups
Special groups can be enabled to display Incoming, Missed and Outgoing Calls. Entries can be individually hidden and the period of the calls can be selected
h4. Online Group
This special group displays contacts that have published availability information.
h4. Edit Contact
You can edit a Contact by right clicking on it and select Edit menu option. _Edit Contact_ "window":http://icanblink.com/screenshots.phtml#add_contact 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 groups icon button presented on the bottom left of the main interface. _Add Contact_ "window":http://icanblink.com/screenshots.phtml#add_contact 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. If your particular SIP service does not support XCAP storage, just add a SIP account from within Blink.
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
Incoming session requests bring up the "Alert Panel":http://icanblink.com/screenshots.phtml#alert_panel</em>. 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":http://icanblink.com/screenshots.phtml#audio_sessions 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. Audio 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 OPUS, Speex, G.722 codec order and leave PCMA and PCMU enabled for compatibility reasons.
Some details about the codecs used by Blink:
* OPUS is the best codec choice covering full human audible spectrum and requires between 20 and 60kbit/s network bandwidth. This codec is available in Blink Pro 3.0.
* Speex is a high quality codec that is often built in softphones covering up to 16kHz audio spectrum and requires about 50kbit/s network bandwidth
* G.722 is the most compatible wideband codec supported by both software and hardware phones covering 11kHz audio spectrum and requires about 100kbit/s network bandwidth
* PCMA (G711A) and PCMU (G711U) are the most interoperable codecs narrowband that work with any device covering up to 4kHz audio spectrum (telephone quality) and requires about 100kbit/s network bandwidth
* GSM and iLBC use less bandwidth than the other codecs but they have less support in other devices and cover up to 4kHz audio spectrum and requires up to 40kbit/s network bandwidth
h3. Best Speech Quality
To obtain best audio quality for speech you must:
* Use a wideband codec like Speex, G.722 or OPUS
* Have Acoustic Echo Cancellation enabled in Blink Audio Preferences, this will set the internal sampling rate to 32kHz covering up to 16kHz audio spectrum
* Enable Ambient Noise Reduction in System Sound Preferences, this will remove the fan and other low frequency noises
* If available bandwidth is an issue, use OPUS, Speex, G722 codecs order in Advanced RTP media preferences
You may use any headset or no headset (speakerphone mode).
h3. Best Studio Quality
To obtain best possible audio quality and remove all delays and distortions of the original signals introduced by the computer software and hardware you must do the following:
* Use a high quality headsets and microphones (low delay at least 41000 Hz sample rate)
* Disable Acoustic Echo Cancellation (AEC) in Blink Audio Preferences. This will disable the built-in noise reduction and echo cancellation algorithms as well as increasing the internal sampling rate to 48kHz
* Disable Ambient Noise Reduction in System Sound Preferences
* Use OPUS codec, with the AEC disabled, it will cover up to 20kHz audio spectrum
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). You can use other delimiter by setting it in Phone Numbers advanced section of the SIP Account.
You can paste a string containing 0 to 9 digits, # and * from the Clipboard in the active audio call. These are then sent out as DTMF codes.
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. This functionality does not work when Blink runs in Sandbox mode (starting with Pro version 1.9.0 and Lite version 1.7.0) due to Apple imposed restrictions.
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. Phone Numbers
To dial a phone 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":http://icanblink.com/screenshots.phtml#audio_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 work like Audio Calls in the sense that a session is established after the called party explicitly accepts the invitation and for each message there is a delivery report available. This is different to Send Message, which is a fire and forget action with no guarantees of the delivery.
!http://icanblink.com/images/BlinkScreenshot-ServerConference.jpg!
_Chat Sessions_ are displayed into the "Chat window":http://icanblink.com/screenshots.phtml#chat_sessions. 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. Presence
Presence is a complex topic as it requires specialized infrastructure not all SIP providers posses. See http://projects.ag-projects.com/news/15
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_ are stand-alone entities that operates in a fire and forget fashion. There is no guarantee for delivery or alerting of the final recipient. _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. For guaranteed message delivery and encryption you must use Chat Sessions.
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
!http://icanblink.com/images/BlinkScreenshot-FileTransfer.jpg!
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":http://icanblink.com/screenshots.phtml#file_transfers. 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.
!http://icanblink.com/images/BlinkScreenshot-ScreenSharingServerSetup.jpg!
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":http://icanblink.com/screenshots.phtml#logs_ice. 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":http://icanblink.com/screenshots.phtml#rtp_endpoints 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":http://msrprelay.org 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":http://msrprelay.org 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":http://icanblink.com/screenshots.phtml#logs 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":http://icanblink.com/screenshots.phtml#server_settings. 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":http://icanblink.com/screenshots.phtml#preferences 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 -> Accounts -> Selected Account -> Advanced -> Web Alert_ 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
* $caller_username - the username part of 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
The web page can be opened when call comes in or after it was answered.
The web page can be opened in a Blink window or in the default web browser (check option in _Preferences -> Advanced -> GUI Settings_)
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.