Package org.linphone.core
Class Factory
java.lang.Object
org.linphone.core.Factory
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionabstract String
computeHa1ForAlgorithm
(String userid, String password, String realm, String algorithm) Computes the hashed version of the password given the user ID and the realm,
using given algorithm.abstract Address
createAddress
(String addr) Parse a string holding a SIP URI and create the accordingAddress
object.abstract AuthInfo
createAuthInfo
(String username, String userid, String passwd, String ha1, String realm, String domain) Creates aAuthInfo
object.abstract AuthInfo
createAuthInfo
(String username, String userid, String passwd, String ha1, String realm, String domain, String algorithm) Creates aAuthInfo
object.abstract Buffer
Creates an objectBuffer
.abstract Buffer
createBufferFromData
(byte[] data, int size) Creates an objectBuffer
.abstract Buffer
createBufferFromString
(String data) Creates an objectBuffer
.abstract ConferenceInfo
Creates an objectConferenceInfo
.abstract ConferenceInfo
Creates an objectConferenceInfo
from an IcalendarContent
.abstract Config
createConfig
(String path) Creates an objectConfig
.abstract Config
createConfigFromString
(String data) Creates an objectConfig
.abstract Config
createConfigWithFactory
(String path, String factoryPath) Creates an objectConfig
.abstract Content
Creates an objectContent
.abstract Content
createContentFromFile
(String filePath) Creates a file object ofContent
from a file path.abstract Core
createCore
(String configPath, String factoryConfigPath, Object systemContext) Instantiate aCore
object.abstract Core
createCoreWithConfig
(Config config, Object systemContext) Instantiate aCore
object with a given LinphoneConfig.abstract DigestAuthenticationPolicy
Create aDigestAuthenticationPolicy
object.abstract ErrorInfo
Creates an object LinphoneErrorInfo.abstract FriendPhoneNumber
createFriendPhoneNumber
(String phoneNumber, String label) Creates a newFriendPhoneNumber
objects.abstract ParticipantDeviceIdentity
createParticipantDeviceIdentity
(Address address, String name) Create aParticipantDeviceIdentity
object.abstract ParticipantInfo
createParticipantInfo
(Address address) Creates an objectConferenceInfo
from an IcalendarContent
.abstract Content
createQrcode
(String code, int width, int height, int margin) Creates a Bitmap QRCode and return it into an objectContent
.abstract Range
Creates an object LinphoneRange.abstract SignalInformation
Creates an objectSignalInformation
.abstract Transports
Creates an object LinphoneTransports.abstract TunnelConfig
Creates an objectTunnelConfig
.abstract Vcard
Create an emptyVcard
.abstract VideoActivationPolicy
Creates an object LinphoneVideoActivationPolicy.abstract VideoDefinition
createVideoDefinition
(int width, int height) Create aVideoDefinition
from a given width and height.abstract VideoDefinition
Create aVideoDefinition
from a given standard definition name.abstract VideoSourceDescriptor
Creates an objectVideoSourceDescriptor
.abstract void
enableLogcatLogs
(boolean enable) When enabled logs are printed into logcat.abstract void
Enables or disables log collection.abstract String
getCacheDir
(Object context) Get the cache path.abstract String
getConfigDir
(Object context) Get the config path.abstract Core
getCore
(long ptr) abstract String
getDataDir
(Object context) Get the data path.abstract String
Get the directory where the data resources are located.abstract DialPlan[]
Returns a bctbx_list_t of all DialPlans.abstract String
getDownloadDir
(Object context) Get the download path.abstract String
Get the directory where the image resources are located.abstract String
Get the directory where the liblinphone plugins are located.abstract LoggingService
Gets the LoggingService singletonabstract String
Get the directory where the mediastreamer2 plugins are located.abstract long
Gets the native pointer used by this class to make native method calls.abstract VideoDefinition[]
Get the recommended list of standard video definitions.abstract String
Get the directory where the ring resources are located.abstract String
Get the directory where the sound resources are located.abstract VideoDefinition[]
Get the list of standard video definitions supported by Linphone.abstract String
Get the top directory where the resources are located.abstract Object
Gets the object stored in this object user's datastatic final Factory
instance()
abstract boolean
Test if cache dir has been set.abstract boolean
isChatroomBackendAvailable
(ChatRoom.Backend chatroomBackend) Indicates if the given LinphoneChatRoomBackend is available.abstract boolean
Test if config dir has been set.abstract boolean
Indicates if the storage in database is available.abstract boolean
Test if data dir has been set.abstract boolean
Test if download dir has been set.abstract boolean
Indicates if IMDN are available.abstract boolean
Indicates if the QRCode feature is available.abstract void
setCacheDir
(String path) Set the directory where the application local cache is located.abstract void
setConfigDir
(String path) Set the directory where the configurations are located.abstract void
setDataDir
(String path) Set the directory where the application local data are located.abstract void
setDataResourcesDir
(String path) Set the directory where the data resources are located.abstract void
setDebugMode
(boolean enable, String tag) Deprecated.abstract void
setDownloadDir
(String path) Set the directory where downloads are located.abstract void
setImageResourcesDir
(String path) Set the directory where the image resources are located.abstract void
Set the directory where the liblinphone plugins are located.abstract void
setLogCollectionPath
(String path) Sets the log collection path.abstract void
setLoggerDomain
(String domain) Used to change the domain name in the app Logger (default is Linphone).abstract void
setMspluginsDir
(String path) Set the directory where the mediastreamer2 plugins are located.abstract void
setRingResourcesDir
(String path) Set the directory where the ring resources are located.abstract void
setSoundResourcesDir
(String path) Set the directory where the sound resources are located.abstract void
setTopResourcesDir
(String path) Set the top directory where the resources are located.abstract void
setUserData
(Object data) Sets the object to store in this object user's dataabstract void
setVfsEncryption
(int encryptionModule, byte[] secret, int secretSize) Select encryption module and set secret material to encrypt the files.abstract int
writeQrcodeFile
(String filePath, String code, int width, int height, int margin) Creates a QRCode and write it into a JPEG file specified by file_path (only if
build with JPEG).
-
Constructor Details
-
Factory
public Factory()
-
-
Method Details
-
instance
-
getLoggingService
Gets the LoggingService singleton -
setDebugMode
Deprecated.use#enableVerboseLogs
,setLoggerDomain(java.lang.String)
andLoggingService.setLogLevel(org.linphone.core.LogLevel)
instead.When enabled, sets the verbosity level to MESSAGE and every log will be printed into logcat. -
setLoggerDomain
Used to change the domain name in the app Logger (default is Linphone). -
enableLogcatLogs
public abstract void enableLogcatLogs(boolean enable) When enabled logs are printed into logcat. warning: This won't have any effect if there is aLoggingServiceListener
set by the app! -
getCore
-
setCacheDir
Set the directory where the application local cache is located.
If the path is empty (default value), the path will be computed when calling
getDataDir(java.lang.Object)
- Parameters:
path
- The path to the directory where the application local cache is
located
-
setConfigDir
Set the directory where the configurations are located.
If the path is empty (default value), the path will be computed when calling
getConfigDir(java.lang.Object)
- Parameters:
path
- The path to the directory where the configurations are located
-
setDataDir
Set the directory where the application local data are located.
If the path is empty (default value), the path will be computed when calling
getDataDir(java.lang.Object)
- Parameters:
path
- The path to the directory where the application local data are
located
-
getDataResourcesDir
Get the directory where the data resources are located.
- Returns:
- The path to the directory where the data resources are located
-
setDataResourcesDir
Set the directory where the data resources are located.
- Parameters:
path
- The path where the data resources are located
-
getDialPlans
Returns a bctbx_list_t of all DialPlans.
- Returns:
- A list of
DialPlan
-
setDownloadDir
Set the directory where downloads are located.
If the path is empty (default value), the path will be computed when calling
getDownloadDir(java.lang.Object)
- Parameters:
path
- The path to the directory where downloads are located
-
getImageResourcesDir
Get the directory where the image resources are located.
- Returns:
- The path to the directory where the image resources are located
-
setImageResourcesDir
Set the directory where the image resources are located.
- Parameters:
path
- The path where the image resources are located
-
isCacheDirSet
public abstract boolean isCacheDirSet()Test if cache dir has been set.
- Returns:
- true if cache dir has been set.
-
isConfigDirSet
public abstract boolean isConfigDirSet()Test if config dir has been set.
- Returns:
- true if config dir has been set.
-
isDataDirSet
public abstract boolean isDataDirSet()Test if data dir has been set.
- Returns:
- true if data dir has been set.
-
isDatabaseStorageAvailable
public abstract boolean isDatabaseStorageAvailable()Indicates if the storage in database is available.
- Returns:
- true if the database storage is available, false otherwise
-
isDownloadDirSet
public abstract boolean isDownloadDirSet()Test if download dir has been set.
- Returns:
- true if download dir has been set.
-
isImdnAvailable
public abstract boolean isImdnAvailable()Indicates if IMDN are available.
- Returns:
- true if IDMN are available
-
isQrcodeAvailable
public abstract boolean isQrcodeAvailable()Indicates if the QRCode feature is available.
- Returns:
- true if QRCodes can be used
-
getLiblinphonePluginsDir
Get the directory where the liblinphone plugins are located.
- Returns:
- The path to the directory where the liblinphone plugins are located, or
null if it has not been set.
-
setLiblinphonePluginsDir
Set the directory where the liblinphone plugins are located.
- Parameters:
path
- The path to the directory where the liblinphone plugins are located
-
setLogCollectionPath
Sets the log collection path.
- Parameters:
path
- the path of the logs
-
getMspluginsDir
Get the directory where the mediastreamer2 plugins are located.
- Returns:
- The path to the directory where the mediastreamer2 plugins are located,
or null if it has not been set.
-
setMspluginsDir
Set the directory where the mediastreamer2 plugins are located.
- Parameters:
path
- The path to the directory where the mediastreamer2 plugins are
located
-
getRecommendedVideoDefinitions
Get the recommended list of standard video definitions.
This list is suitable for a widest set of hardware for all video codec
implementations, and thus excludes some very high definition formats that are
unlikely to work unless specific hardware or codecs are used.- Returns:
- A list of video definitions.
-
getRingResourcesDir
Get the directory where the ring resources are located.
- Returns:
- The path to the directory where the ring resources are located
-
setRingResourcesDir
Set the directory where the ring resources are located.
- Parameters:
path
- The path where the ring resources are located
-
getSoundResourcesDir
Get the directory where the sound resources are located.
- Returns:
- The path to the directory where the sound resources are located
-
setSoundResourcesDir
Set the directory where the sound resources are located.
- Parameters:
path
- The path where the sound resources are located
-
getSupportedVideoDefinitions
Get the list of standard video definitions supported by Linphone.
- Returns:
- A list of video definitions.
-
getTopResourcesDir
Get the top directory where the resources are located.
- Returns:
- The path to the top directory where the resources are located
-
setTopResourcesDir
Set the top directory where the resources are located.
If you only define this top directory, the other resources directory will
automatically be derived form this one.- Parameters:
path
- The path to the top directory where the resources are located
-
computeHa1ForAlgorithm
@Nullable public abstract String computeHa1ForAlgorithm(@NonNull String userid, @NonNull String password, @NonNull String realm, @NonNull String algorithm) Computes the hashed version of the password given the user ID and the realm,
using given algorithm.
- Parameters:
userid
- the username or user ID to use.password
- the password to hash.realm
- the real to use.algorithm
- the algorithm to use (MD5 or SHA-256).- Returns:
- the generated hash if it succeeded, null otherwise.
-
createAddress
- Parameters:
addr
- A string holding the SIP URI to parse.- Returns:
- A new
Address
.
-
createAuthInfo
@NonNull public abstract AuthInfo createAuthInfo(@NonNull String username, @Nullable String userid, @Nullable String passwd, @Nullable String ha1, @Nullable String realm, @Nullable String domain) Creates aAuthInfo
object.
The object can be created empty, that is with all arguments set to null.
Username, userid, password, realm and domain can be set later using specific
methods. At the end, username and passwd (or ha1) are required.- Parameters:
username
- The username that needs to be authenticateduserid
- The userid used for authenticating (use null if you don't know
what it is)passwd
- The password in clear textha1
- The ha1-encrypted password if password is not given in clear text.realm
- The authentication domain (which can be larger than the sip
domain. Unfortunately many SIP servers don't use this parameter.domain
- The SIP domain for which this authentication information is
valid, if it has to be restricted for a single SIP domain.- Returns:
- A
AuthInfo
object. linphone_auth_info_destroy must be used to
destroy it when no longer needed. TheCore
makes a copy ofAuthInfo
passed throughCore.addAuthInfo(org.linphone.core.AuthInfo)
.
-
createAuthInfo
@NonNull public abstract AuthInfo createAuthInfo(@NonNull String username, @Nullable String userid, @Nullable String passwd, @Nullable String ha1, @Nullable String realm, @Nullable String domain, @Nullable String algorithm) Creates aAuthInfo
object.
The object can be created empty, that is with all arguments set to null.
Username, userid, password, realm and domain can be set later using specific
methods. At the end, username and passwd (or ha1) are required.- Parameters:
username
- The username that needs to be authenticateduserid
- The userid used for authenticating (use null if you don't know
what it is)passwd
- The password in clear textha1
- The ha1-encrypted password if password is not given in clear text.realm
- The authentication domain (which can be larger than the sip
domain. Unfortunately many SIP servers don't use this parameter.domain
- The SIP domain for which this authentication information is
valid, if it has to be restricted for a single SIP domain.algorithm
- The algorithm for encrypting password.- Returns:
- A
AuthInfo
object. linphone_auth_info_destroy must be used to
destroy it when no longer needed. TheCore
makes a copy ofAuthInfo
passed throughCore.addAuthInfo(org.linphone.core.AuthInfo)
.
-
createBuffer
- Returns:
- a
Buffer
-
createBufferFromData
- Parameters:
data
- the data to set in the buffersize
- the size of the data- Returns:
- a
Buffer
-
createBufferFromString
- Parameters:
data
- the data to set in the buffer- Returns:
- a
Buffer
-
createConferenceInfo
- Returns:
- a
ConferenceInfo
-
createConferenceInfoFromIcalendarContent
@Nullable public abstract ConferenceInfo createConferenceInfoFromIcalendarContent(@NonNull Content content) - Parameters:
content
- the IcalendarContent
- Returns:
- a
ConferenceInfo
created from an IcalendarContent
-
createConfig
- Parameters:
path
- the path of the config- Returns:
- a
Config
-
createConfigFromString
- Parameters:
data
- the config data- Returns:
- a
Config
-
createConfigWithFactory
@NonNull public abstract Config createConfigWithFactory(@Nullable String path, @Nullable String factoryPath) - Parameters:
path
- the path of the configfactoryPath
- the path of the factory- Returns:
- a
Config
-
createContent
- Returns:
- a
Content
-
createContentFromFile
- Parameters:
filePath
- the path of the file- Returns:
- a
Content
which can be used as a file
-
createCore
@NonNull public abstract Core createCore(@Nullable String configPath, @Nullable String factoryConfigPath, @Nullable Object systemContext) Instantiate aCore
object.
TheCore
object is the primary handle for doing all phone actions. It
should be unique within your application. TheCore
object is not
started automatically, you need to callCore.start()
to that effect. The
returnedCore
will be inGlobalState
Ready. Core ressources can
be released usingCore.stop()
which is strongly encouraged on garbage
collected languages.- Parameters:
configPath
- A path to a config file. If it does not exists it will be
created. The config file is used to store all settings, proxies... so that all
these settings become persistent over the life of theCore
object. It
is allowed to set a null config file. In that caseCore
will not store
any settings.factoryConfigPath
- A path to a read-only config file that can be used to
store hard-coded preferences such as proxy settings or internal preferences.
The settings in this factory file always override the ones in the normal config
file. It is optional, use null if unneeded.systemContext
- A pointer to a system object required by the core to
operate. Currently it is required to pass an android Context on android, pass
null on other platforms.- Returns:
- a
Core
object
see: linphone_core_new_with_config_3()
-
createCoreWithConfig
@NonNull public abstract Core createCoreWithConfig(@NonNull Config config, @Nullable Object systemContext) Instantiate aCore
object with a given LinphoneConfig.
TheCore
object is the primary handle for doing all phone actions. It
should be unique within your application. TheCore
object is not
started automatically, you need to callCore.start()
to that effect. The
returnedCore
will be inGlobalState
Ready. Core ressources can
be released usingCore.stop()
which is strongly encouraged on garbage
collected languages.- Parameters:
config
- AConfig
object holding the configuration for theCore
to be instantiated.systemContext
- A pointer to a system object required by the core to
operate. Currently it is required to pass an android Context on android, pass
null on other platforms.- Returns:
- a
Core
object
see:createCore(java.lang.String, java.lang.String, java.lang.Object)
-
createDigestAuthenticationPolicy
Create aDigestAuthenticationPolicy
object.
TheDigestAuthenticationPolicy
object which is used to configure a
policy for digest authentication, such as allowing MD5 or mode without
qop=auth.- Returns:
- a new
DigestAuthenticationPolicy
.
-
createErrorInfo
Creates an object LinphoneErrorInfo.
- Returns:
- a
ErrorInfo
object.
-
createFriendPhoneNumber
@NonNull public abstract FriendPhoneNumber createFriendPhoneNumber(@NonNull String phoneNumber, @Nullable String label) - Parameters:
phoneNumber
- The phone number.label
- the type of phone number, for example "home", "cell", etc. Use
null or empty for no label.- Returns:
- The newly created
FriendPhoneNumber
object.
-
createParticipantDeviceIdentity
@NonNull public abstract ParticipantDeviceIdentity createParticipantDeviceIdentity(@NonNull Address address, @Nullable String name) - Parameters:
address
-Address
object.name
- the name given to the device.- Returns:
- A new
ParticipantDeviceIdentity
.
-
createParticipantInfo
- Parameters:
address
- theAddress
of the participant- Returns:
- a
ParticipantInfo
-
createQrcode
@Nullable public abstract Content createQrcode(@NonNull String code, int width, int height, int margin) - Parameters:
code
- The code to be generated into an image. It must not be empty.width
- The requested width of the QRCode image. It will be 100 if 0.height
- The requested height of the QRCode image. It will be 100 if 0.margin
- The requested margin of the QRCode image.- Returns:
- a
Content
-
createRange
Creates an object LinphoneRange.
- Returns:
- a
Range
object.
-
createSignalInformation
- Returns:
- a
SignalInformation
-
createTransports
Creates an object LinphoneTransports.
- Returns:
- a
Transports
object.
-
createTunnelConfig
- Returns:
- a
TunnelConfig
-
createVcard
- Returns:
- a new
Vcard
.
-
createVideoActivationPolicy
Creates an object LinphoneVideoActivationPolicy.
- Returns:
VideoActivationPolicy
object.
-
createVideoDefinition
- Parameters:
width
- The width of the created video definitionheight
- The height of the created video definition- Returns:
- A new
VideoDefinition
object
-
createVideoDefinitionFromName
- Parameters:
name
- The standard definition name of the video definition to create- Returns:
- A new
VideoDefinition
object
-
createVideoSourceDescriptor
- Returns:
- a
VideoSourceDescriptor
-
enableLogCollection
Enables or disables log collection.
- Parameters:
state
- theLogCollectionState
for log collection
-
getCacheDir
Get the cache path.
- Parameters:
context
- used to compute path. Can be null. JavaPlatformHelper on Android
and char *appGroupId on iOS with shared core.- Returns:
- The cache path
-
getConfigDir
Get the config path.
- Parameters:
context
- used to compute path. Can be null. JavaPlatformHelper on Android
and char *appGroupId on iOS with shared core.- Returns:
- The config path
-
getDataDir
Get the data path.
- Parameters:
context
- used to compute path. Can be null. JavaPlatformHelper on Android
and char *appGroupId on iOS with shared core.- Returns:
- The data path
-
getDownloadDir
Get the download path.
- Parameters:
context
- used to compute path. Can be null. JavaPlatformHelper on Android
and char *appGroupId on iOS with shared core.- Returns:
- The download path
-
isChatroomBackendAvailable
Indicates if the given LinphoneChatRoomBackend is available.
- Parameters:
chatroomBackend
- theChatRoom#Backend
- Returns:
- true if the chatroom backend is available, false otherwise
-
setVfsEncryption
public abstract void setVfsEncryption(int encryptionModule, @Nullable byte[] secret, int secretSize) Select encryption module and set secret material to encrypt the files.
- Parameters:
encryptionModule
- One of the available encryption module for VFS, pick in
the LINPHONE_VFS_ENCRYPTION_* list if set to _UNSET, default bctoolbox VFS is
switch to Standard onesecret
- the secret material used to encrypt the files, can be null for
the _PLAIN modulesecretSize
- size of the secret
-
writeQrcodeFile
public abstract int writeQrcodeFile(@NonNull String filePath, @NonNull String code, int width, int height, int margin) Creates a QRCode and write it into a JPEG file specified by file_path (only if
build with JPEG).
- Parameters:
filePath
- The file where to write the QRCode JPEG image.code
- The code to be generated into an image. It must not be empty.width
- The requested width of the QRCode image. It will be 100 if 0.height
- The requested height of the QRCode image. It will be 100 if 0.margin
- The requested margin of the QRCode image.- Returns:
- 0 if successful, -2 if JPEG is not supported, -1 otherwise
-
setUserData
Sets the object to store in this object user's data- Parameters:
data
- the object to store
-
getUserData
Gets the object stored in this object user's data- Returns:
- the object store if any, null otherwise
-
getNativePointer
public abstract long getNativePointer()Gets the native pointer used by this class to make native method calls.- Returns:
- the nativer pointer, as long
-
#enableVerboseLogs
,setLoggerDomain(java.lang.String)
andLoggingService.setLogLevel(org.linphone.core.LogLevel)
instead.