Factory
public class Factory : LinphoneObject
The factory is a singleton object devoted to the creation of all the objects of
Liblinphone that cannot be created by Core
itself.
It is also used to configure a few behaviors before creating the Core
, like
the logs verbosity or collection.
-
Undocumented
Declaration
Swift
public static func getSwiftObject(cObject: OpaquePointer) -> Factory
-
Undocumented
Declaration
Swift
public var getCobject: OpaquePointer? { get }
-
Clean the factory. This function is generally useless as the factory is unique per process, however calling this function at the end avoid getting reports from belle-sip leak detector about memory leaked in get().
Declaration
Swift
public static func clean()
-
Create the
Factory
if that has not been done and return a pointer on it.Declaration
Swift
public static var Instance: Factory { get }
Return Value
A pointer on the
Factory
-
Get the directory where the data resources are located.
Declaration
Swift
public var dataResourcesDir: String { get set }
Return Value
The path to the directory where the data resources are located
-
Get the directory where the image resources are located.
Declaration
Swift
public var imageResourcesDir: String { get set }
Return Value
The path to the directory where the image resources are located
-
Indicates if the storage in database is available.
Declaration
Swift
public var isDatabaseStorageAvailable: Bool { get }
Return Value
true if the database storage is available, false otherwise
-
Indicates if IMDN are available.
Declaration
Swift
public var isImdnAvailable: Bool { get }
Return Value
true if IDMN are available
-
Sets the log collection path.
Declaration
Swift
public var logCollectionPath: String { get set }
Parameters
path
the path of the logs
-
Get the directory where the mediastreamer2 plugins are located.
Declaration
Swift
public var mspluginsDir: String { get set }
Return Value
The path to the directory where the mediastreamer2 plugins are located, or nil if it has not been set.
-
Get the directory where the ring resources are located.
Declaration
Swift
public var ringResourcesDir: String { get set }
Return Value
The path to the directory where the ring resources are located
-
Get the directory where the sound resources are located.
Declaration
Swift
public var soundResourcesDir: String { get set }
Return Value
The path to the directory where the sound resources are located
-
Get the list of standard video definitions supported by Linphone.
Declaration
Swift
public var supportedVideoDefinitions: [VideoDefinition] { get }
Return Value
A list of video definitions.
-
Get the top directory where the resources are located.
Declaration
Swift
public var topResourcesDir: String { get set }
Return Value
The path to the top directory where the resources are located
-
Gets the user data in the
Factory
object.Declaration
Swift
public var userData: UnsafeMutableRawPointer? { get set }
Return Value
the user data.
-
Creates a
AuthInfo
object. The object can be created empty, that is with all arguments set to nil. Username, userid, password, realm and domain can be set later using specific methods. At the end, username and passwd (or ha1) are required.Declaration
Swift
public func createAuthInfo(username: String, userid: String?, passwd: String?, ha1: String?, realm: String?, domain: String?) throws -> AuthInfo
Parameters
username
The username that needs to be authenticated
userid
The userid used for authenticating (use nil if you don’t know what it is)
passwd
The password in clear text
ha1
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.
-
Creates a
AuthInfo
object. The object can be created empty, that is with all arguments set to nil. Username, userid, password, realm and domain can be set later using specific methods. At the end, username and passwd (or ha1) are required.Declaration
Swift
public func createAuthInfo(username: String, userid: String?, passwd: String?, ha1: String?, realm: String?, domain: String?, algorithm: String?) throws -> AuthInfo
Parameters
username
The username that needs to be authenticated
userid
The userid used for authenticating (use nil if you don’t know what it is)
passwd
The password in clear text
ha1
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.
-
Instantiate a
Core
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 call Core.start() to that effect. The returnedCore
will be inGlobalState
Ready. Core ressources can be released using Core.stop() which is strongly encouraged on garbage collected languages.See
See also: linphone_core_new_with_config_3()Declaration
Swift
public func createCore(configPath: String?, factoryConfigPath: String?, systemContext: UnsafeMutableRawPointer?) throws -> Core
Parameters
configPath
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 nil 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 nil on other platforms.
Return Value
a
Core
object -
Instantiate a
Core
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 call Core.start() to that effect. The returnedCore
will be inGlobalState
Ready. Core ressources can be released using Core.stop() which is strongly encouraged on garbage collected languages.See
See also: createCore()Declaration
Parameters
config
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 nil on other platforms.
Return Value
a
Core
object -
Create a
ParticipantDeviceIdentity
object.Declaration
Swift
public func createParticipantDeviceIdentity(address: Address, name: String?) throws -> ParticipantDeviceIdentity
Parameters
address
Address
object.name
the name given to the device.
Return Value
A new
ParticipantDeviceIdentity
. -
Instantiate a shared
Core
object. The sharedCore
allow you to create severalCore
with the same config. TwoCore
can’t run at the same time. A sharedCore
can be a “Main Core” or an “Executor Core”. A “Main Core” automatically stops a running “Executor Core” when calling Core.start() An “Executor Core” can’t start unless no otherCore
is started. It can be stopped by a “Main Core” and switch toGlobalState
Off at any time. Shared Executor Core are used in iOS UNNotificationServiceExtension to receive new messages from push notifications. When the application is in background, its Shared Main Core is stopped. TheCore
object is not started automatically, you need to call Core.start() to that effect. The returnedCore
will be inGlobalState
Ready. Core ressources can be released using Core.stop() which is strongly encouraged on garbage collected languages.See
See also: createSharedCoreWithConfig()Declaration
Swift
public func createSharedCore(configFilename: String?, factoryConfigPath: String?, systemContext: UnsafeMutableRawPointer?, appGroupId: String, mainCore: Bool) throws -> Core
Parameters
configFilename
The name of the config file. If it does not exists it will be created. Its path is computed using the app_group_id. The config file is used to store all settings, proxies… so that all these settings become persistent over the life of the
Core
object. It is allowed to set a nil 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 nil 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 nil on other platforms.
appGroupId
Name of iOS App Group that lead to the file system that is shared between an app and its app extensions.
mainCore
Indicate if we want to create a “Main Core” or an “Executor Core”.
Return Value
a
Core
object -
Instantiate a shared
Core
object. The sharedCore
allow you to create severalCore
with the same config. TwoCore
can’t run at the same time. A sharedCore
can be a “Main Core” or an “Executor Core”. A “Main Core” automatically stops a running “Executor Core” when calling Core.start() An “Executor Core” can’t start unless no otherCore
is started. It can be stopped by a “Main Core” and switch toGlobalState
Off at any time. Shared Executor Core are used in iOS UNNotificationServiceExtension to receive new messages from push notifications. When the application is in background, its Shared Main Core is stopped. TheCore
object is not started automatically, you need to call Core.start() to that effect. The returnedCore
will be inGlobalState
Ready. Core ressources can be released using Core.stop() which is strongly encouraged on garbage collected languages.See
See also: createSharedCore()Declaration
Parameters
config
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 nil on other platforms.
appGroupId
Name of iOS App Group that lead to the file system that is shared between an app and its app extensions.
mainCore
Indicate if we want to create a “Main Core” or an “Executor Core”.
Return Value
a
Core
object -
Creates an object LinphoneTransports.
Declaration
Swift
public func createTransports() throws -> Transports
Return Value
a
Transports
object. -
Creates an object
TunnelConfig
.Declaration
Swift
public func createTunnelConfig() throws -> TunnelConfig
Return Value
-
Creates an object LinphoneVideoActivationPolicy.
Declaration
Swift
public func createVideoActivationPolicy() throws -> VideoActivationPolicy
Return Value
VideoActivationPolicy
object. -
Create a
VideoDefinition
from a given width and height.Declaration
Swift
public func createVideoDefinition(width: UInt, height: UInt) throws -> VideoDefinition
Parameters
width
The width of the created video definition
height
The height of the created video definition
Return Value
A new
VideoDefinition
object -
Create a
VideoDefinition
from a given standard definition name.Declaration
Swift
public func createVideoDefinitionFromName(name: String) throws -> VideoDefinition
Parameters
name
The standard definition name of the video definition to create
Return Value
A new
VideoDefinition
object -
Enables or disables log collection.
Declaration
Swift
public func enableLogCollection(state: LogCollectionState)
Parameters
state
the
LogCollectionState
for log collection -
Get the config path.
Declaration
Swift
public func getConfigDir(context: UnsafeMutableRawPointer?) -> String
Parameters
context
used to compute path. Can be nil. JavaPlatformHelper on Android and char *appGroupId on iOS with shared core.
Return Value
The config path
-
Get the data path.
Declaration
Swift
public func getDataDir(context: UnsafeMutableRawPointer?) -> String
Parameters
context
used to compute path. Can be nil. JavaPlatformHelper on Android and char *appGroupId on iOS with shared core.
Return Value
The data path
-
Get the download path.
Declaration
Swift
public func getDownloadDir(context: UnsafeMutableRawPointer?) -> String
Parameters
context
used to compute path. Can be nil. JavaPlatformHelper on Android and char *appGroupId on iOS with shared core.
Return Value
The download path
-
Indicates if the given LinphoneChatRoomBackend is available.
Declaration
Swift
public func isChatroomBackendAvailable(chatroomBackend: ChatRoomBackend) -> Bool
Parameters
chatroomBackend
the
ChatRoomBackend
Return Value
true if the chatroom backend is available, false otherwise
-
Select encryption module and set secret material to encrypt the files.
Declaration
Swift
public func setVfsEncryption(encryptionModule: UInt16, secret: UnsafePointer<UInt8>?, secretSize: Int)
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 one
secret
the secret material used to encrypt the files, can be nil for the _PLAIN module
secretSize
size of the secret