See: Description
Interface | Description |
---|---|
DialPlan |
Dial plan
|
ErrorInfo | |
LinphoneAccountCreator | |
LinphoneAccountCreator.LinphoneAccountCreatorListener | |
LinphoneAddress |
Object that represents a SIP address.
|
LinphoneAuthInfo |
Object holding authentication information.
|
LinphoneBuffer |
The LinphoneContent object representing a data buffer.
|
LinphoneCall |
Object representing a call.
|
LinphoneCall.LinphoneCallListener |
LinphoneCall listener
|
LinphoneCallLog |
Object representing a call log.
|
LinphoneCallParams |
The LinphoneCallParams is an object containing various call related parameters.
|
LinphoneCallStats | |
LinphoneChatMessage | |
LinphoneChatMessage.LinphoneChatMessageListener | |
LinphoneChatMessage.StateListener | Deprecated |
LinphoneChatRoom |
A chat room is the place where text messages are exchanged.
|
LinphoneConference |
Interface to manipulate a running conference
|
LinphoneConferenceParams | |
LinphoneContent |
LinphoneContent interface describes a SIP message content (body).
|
LinphoneCore |
Linphone core main object created by method
LinphoneCoreFactory.createLinphoneCore(LinphoneCoreListener, String, String, Object, Object) . |
LinphoneCoreListener |
This interface holds all callbacks that the application should implement.
|
LinphoneEvent |
LinphoneEvent
|
LinphoneFriend |
Represents a buddy, all presence actions like subscription and status change notification are performed on this object
|
LinphoneFriendList | |
LinphoneFriendList.LinphoneFriendListListener | |
LinphoneInfoMessage |
The LinphoneInfoMessage represents an informational message (INFO) to be transmitted or received by the LinphoneCore.
|
LinphoneLogHandler |
Interface to implement for handling liblinphone log.
|
LinphoneNatPolicy |
Policy to use to pass through NATs/firewalls.
|
LinphonePlayer | |
LinphonePlayer.Listener |
Listener for Linphone players
|
LinphoneProxyConfig |
The LinphoneProxyConfig object represents a proxy configuration to be used by the LinphoneCore object.
|
LinphoneXmlRpcRequest | |
LinphoneXmlRpcRequest.LinphoneXmlRpcRequestListener | |
LinphoneXmlRpcSession | |
LpConfig |
The LpConfig object is used to manipulate a configuration file.
|
OpenH264DownloadHelperAction | |
OpenH264DownloadHelperListener | |
PayloadType | |
PresenceActivity | |
PresenceModel | |
PresenceNote | |
PresencePerson | |
PresenceService | |
Privacy | |
TunnelConfig |
The TunnelConfig interface allows to configure information about a tunnel server (voip anti blocking).
|
Enum | Description |
---|---|
LinphoneCallStats.LinphoneAddressFamily | |
LinphoneCore.TunnelMode | |
LinphonePlayer.State |
States that the player can be
|
PresenceActivityType |
Activities as defined in section 3.2 of RFC 4480
|
PresenceBasicStatus |
Basic status as defined in section 4.1.4 of RFC 3863
|
PublishState | |
SubscriptionDir | |
SubscriptionState | |
ToneID |
Exception | Description |
---|---|
LinphoneCoreException |
LinphoneProxyConfig
settings.
LinphoneProxyConfig
object can be configured with registration informations
like proxy address
, user id
, and so on.
org.linphone.core.LinphoneCoreFactory#createProxyConfig
, once configured, must be added to LinphoneCore
using function LinphoneCore.addProxyConfig(org.linphone.core.LinphoneProxyConfig)
.
proxy config
using function LinphoneCore.setDefaultProxyConfig(org.linphone.core.LinphoneProxyConfig)
. Once done, if a proxy config
has been configured with attribute enable register
, next call to LinphoneCore.iterate()
triggers a SIP register.
registration listener
.
LinphoneProxyConfig proxy_cfg;
/*create proxy config*/
proxy_cfg = LinphoneCoreFactory.instance().createProxyConfig();
/*parse identity*/
LinphoneAddress from = LinphoneCoreFactory.instance().createAddress("sip:toto@sip.titi.com");
LinphoneAuthInfo info;
if (password!=NULL){
info=LinphoneCoreFactory.instance().createAuthInfo(from.getUsername(),null,"secret",null,null); /*create authentication structure from identity*/
lc.addAuthInfo(info); /*add authentication info to LinphoneCore*/
}
// configure proxy entries
proxy_cfg.setIdenty(identity); /*set identity with user name and domain*/
String server_addr = from.getDomain(); /*extract domain address from identity*/
proxy_cfg.setProxy(server_addr); /* we assume domain = proxy server address*/
proxy_cfg.enableRegister(true); /*activate registration for this proxy config*/
lc.addProxyConfig(proxy_cfg); /*add proxy config to linphone core*/
lc.setDefaultProxyconfig(proxy_cfg); /*set to default proxy*/
Registration state listener
:
void registrationState(LinphoneCore lc, LinphoneProxyConfig cfg, LinphoneCore.RegistrationState cstate, String message){
System.out.println(New registration state ["+cstate+"] for user id ["+cfg.getUserName()+"] at proxy ["+cfg.getProxy()+"]";
}
authentication
to succed. LinphoneAuthInfo
info must be either added to LinphoneCore
using method LinphoneCore.addAuthInfo(org.linphone.core.LinphoneAuthInfo)
before LinphoneProxyConfig
is added to Linphone core, or on demand from listener org.linphone.core.LinphoneCoreListener#authInfoRequested(LinphoneCore, String, String)
.
LinphoneProxyConfig
must be first started by a call to function LinphoneProxyConfig.edit()
and validated by function LinphoneProxyConfig.done()
LinphoneProxyConfig
LinphoneProxyConfig proxy_cfg;
lc.setDefaultProxyConfig(proxy_cfg); /* get default proxy config*/
proxy_cfg.edit(); /*start editing proxy configuration*/
proxy_cfg.enableRegister(false); /*de-activate registration for this proxy config*/
proxy_cfg.done(); /*initiate REGISTER with expire = 0*/
LinphoneFriend
object created by function LinphoneCoreFactory.createLinphoneFriend()
.
Buddy configuration parameters like sip uri
or status publication
are configurable for each buddy.
LinphoneFriend my_friend=LinphoneFactory.instance().createFriend("sip:joe@sip.linphone.org"); /*creates friend object for buddy joe*/
my_friend.enableSubscribes(true); /*configure this friend to emit SUBSCRIBE message after being added to LinphoneCore*/
my_friend.setIncSubscribePolicy(LinphoneFriend.SubscribePolicy.Accept); /* accept Incoming subscription request for this friend*/
friends
status changes are reported by LinphoneCoreListener.notifyPresenceReceived(LinphoneCore lc, LinphoneFriend lf)
.
void notifyPresenceReceived(LinphoneCore lc, LinphoneFriend lf){
LinphoneAddress friend_address = lf.getAddress();
System.out.println("New state ["+lf.getStatus()+"] for user id ["+friend_address+"] ");
}
LinphoneCore.addFriend(LinphoneFriend lf)
. Added friends will be notified about local status changes
LinphoneFriend
must be first started by a call to function to LinphoneFriend.edit()
and validated by function LinphoneFriend.done()
my_friend.edit(); /* start editing friend */
my_friend.enableSubscribes(true); /*disable subscription for this friend*/
my_friend.done(); /*commit changes triggering an UNSUBSCRIBE message*/
Publishing presence status
LinphoneCore.setPresenceInfo(int, java.lang.String, org.linphone.core.OnlineStatus)
.New status is propagated to all friends previously added
to LinphoneCore.
the incoming subscription policy state
for subscription initiated by members of the buddy list.
LinphoneCoreListener.newSubscriptionRequest(LinphoneCore lc, LinphoneFriend lf, String url)
LinphoneChatRoom
object. First step is to create a chat room
from a peer sip uri.
LinphoneChatRoom chat_room = lc.createChatRoom("sip:joe@sip.linphone.org");
LinphoneChatRoom.sendMessage(java.lang.String)
.
chat_room.sendMessage("Hello world"); /*sending message*/
a listener
void textReceived(LinphoneCore lc, LinphoneChatRoom cr,LinphoneAddress from,String message) {
System.out.println("Message ["+message+"] received from ["+from+"] ");
}
LinphoneCore
. These gains are liblinphone's internal software gains and are unrelated to volume levels managed by the operating system. For example:
[sound]
#set the speaker or receiver playback gain in dbm0 (0 db = no change).
playback_gain_db=-3
#set the microphone gain in linear scale:
mic_gain=0.1
LinphoneCore.startEchoCalibration
.
The measurement of the echo delay is important to save CPU computations by restricting the temporal area where the software echo canceller has to perform.
LinphoneCall.enableEchoLimiter()
.
LinphoneCore.enableEchoCancellation(false)
LinphoneCall.enableEchoLimiter()
.
Controlling echo canceller during a call has to be done with LinphoneCall.enableEchoCancellation()
.
[sound]
el_type=mic
#speaker energy threshold (linear scale) above which echo limiter decreases mic gain.
el_thres=0.03
#attenuation applied to mic gain (linear scale)
el_force=100000
#minimum time in milliseconds during which attenuation is applied
el_sustain=600
#double talk detection: threshold of ratio mic-energy/speaker-energy above which mic input is sent anyway.
el_transmit_thres=1.7
#noise gate floorgain (gain applied when no voice is detected).
ng_floorgain=0.01
Up to date settings must be found from linphone-android/res/raw/linphonerc file.