Calling Onnet and Offnet
Posted by David Brooks on 06 April 2017 04:55 PM
In YunGO services a call can be routed through the IP network directly to another YunGO user or to the PSTN network (GSM or landline numbers). Calls to other users are referred to as onnet while calls out to PSTN networks as offnet. The difference between these two services is in their cost: onnet calls are free, while offnet calls are charged according to the tariff imposed by the provider. In addition, the onnet calls offer more features, which include video calling, HD audio, and others described further.
For YunGO contacts the user can select how he wants to connect, either onnet or offnet (if the YunGO contact is registered with phone number). For non-YunGO contacts the only option is to use off-net call.
Onnet calls (free users to user)
Calls among users remain within the YunGO network (Onnet). Therefore it is possible to manage video communication and wide band (HD) codecs for voice. For audio, we use special codec, which supports adjustable bit rate and several audio preprocessing algorithms, which guarantee high quality in changing network conditions.
Video calling is based on VP8 codec with congestion control mechanism.
Peer to peer
This framework provides a mechanism for finding the most efficient media path. The preference is set for direct peer to peer calls between users. Call request is sent from client A to B using SIP through our server. When answered by B both dialers start sending packets to one another trying direct path – to their NATs IP addresses, and the path via media relay server. In most cases (more than 95% of NATs) the peer to peer path will be established successfully. If for some reasons, the direct path cannot be established the framework will seamlessly connect through the server.
Video call can be initiated directly by tapping on the icon with the camera in the contact details view or on the video shortcut on the main Contacts. The other side will get the call with an option to accept video or audio only.
The other method is to initiate audio only call and enable video later, during the call, by clicking on the video icon on the screen.
During video call the control buttons disappear after two seconds and come back when you touch the screen, then goes off again after two seconds of inactivity.
During a call functions
While in a call the screen is composed of following elements (from the top):
Quality indicator (advanced)
The application controls the RTP (media) stream and measures various quality factors, the main being the lost packet count. The check is performed for both audio and video. When the measured quality of the stream drops below one of 3 predefined quality levels it will be signaled by changing the icon and displaying a popup with adequate text. The levels are excellent, good and poor. They are related to the MOS metrics (Mean Opinion Score).
Recording works only for audio. When in a call a user can press the record button and start recording the conversation. The recording will contain whole conversation i.e. combined streams of all parties. The recordings are stored in wav format, each recording in a separate file. The files can be retrieved from a device using iTunes/file sharing menu.
Instant messaging in a call
Tapping the chat icon will bring the keypad and an input field where you can compose and send a text message. It works exactly same way as in the Chat menu except for the messages overlaying the main call view.
When you receive a new message a badge will be shown on the message icon, also there is a short beep indicating its arrival.
Tapping on the clip icon brings more options for sending attachments. They include location sharing and picture. Please note that sending picture during a video call is not available.
These features work the same way as in the chat menu where you can find more details.
This function is available from the extended menu. An active call can be transferred to some other number or another YunGO user. The phone number can be typed from the Dialpad or be selected from the Contacts list.
When you tap the transfer button the other party is put on hold. After selecting the number or YunGO user the active call is disconnected from your dialer and then the server tries to connect to the new destination. As you do not know if this operation succeeded or not this type of transfer is called blind transfer.
The application supports up to 4 concurrent calls. You can switch between them by tapping on an avatar representing particular caller.
When there is a new call coming while you are in a call already, you will hear a beep and see the new avatar shown on the call view.
If you want to add a new call click on the extended menu and then select the plus icon. Similarly, to the transfer feature you will be presented with an option to choose the number from Dialpad or to choose an item from the contacts list.
Active calls can be merged into a conference. It works only for audio, the mixing is done on the application side hence the limit to 4 active callers. To start a conference go to extended menu and tap the merge calls icon.
Offnet calls (YonGO Offnet)
YunGO Out is a service allowing users to place calls to PSTN numbers through the provider’s platform. Such calls are usually charged according to the tariff set by the provider.
The offnet calls can be initiated from:
If user does not have enough balance on his account the server will send back the “payment required” error which will bring a pop-up with adequate information. The balance can be topped up through the Account menu.
Before placing an offnet call the app allows checking the cost per minute. In the contact view a user can tap on the dollar icon in order to see the rate. In addition, the rate is presented when dialing from the Dialpad after entering phone number.
Calling from Dialpad
After entering first 3 digits into the phone number input field the dialer will check the rate per minute for the entered destination and show it below the number, along with the destination name. This information is retrieved from the server from the tariff associated with the user account.
In the left bottom corner the user account balance is displayed. Tapping on it will take you to the Account menu.
Taping the call button will trigger a lookup that checks if the entered number belongs to a YunGO user. If so you will be presented with an option to call on-net for free. However, you can still opt for paid call.
Recents menu (call log)
The calls are grouped in threads by the Caller ID. If more calls came subsequently from the same caller they will be grouped in one thread. Each thread or a single call entry has an arrow icon indicating whether it was incoming, outgoing or missed call.
Taping on the row in the call log list takes us to the call details view which shows more information on the caller and exact time of calls from and/or to him.