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
-
Set the directory where the configurations are located. If the path is empty (default value), the path will be computed when calling getConfigDir()
Declaration
Swift
public var configDir: String { get set }
Parameters
path
The path to the directory where the configurations are located
-
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()
Declaration
Swift
public var dataDir: String { get set }
Parameters
path
The path to the directory where the application local data are located
-
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
-
Set the directory where downloads are located. If the path is empty (default value), the path will be computed when calling getDownloadDir()
Declaration
Swift
public var downloadDir: String { get set }
Parameters
path
The path to the directory where downloads 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
-
Test if config dir has been set.
Declaration
Swift
public var isConfigDirSet: Bool { get }
Return Value
true if config dir has been set.
-
Test if data dir has been set.
Declaration
Swift
public var isDataDirSet: Bool { get }
Return Value
true if data dir has been set.
-
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
-
Test if download dir has been set.
Declaration
Swift
public var isDownloadDirSet: Bool { get }
Return Value
true if download dir has been set.
-
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 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.
Declaration
Swift
public var recommendedVideoDefinitions: [VideoDefinition] { get }
Return Value
A list of video definitions.
-
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.
-
Creates an object
ConferenceInfo
.Declaration
Swift
public func createConferenceInfo() throws -> ConferenceInfo
Return Value
-
Creates an object
ConferenceInfo
from an IcalendarContent
.Declaration
Swift
public func createConferenceInfoFromIcalendarContent(content: Content) throws -> ConferenceInfo
Parameters
content
the Icalendar
Content
Return Value
a
ConferenceInfo
created from an IcalendarContent
-
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
DigestAuthenticationPolicy
object. TheDigestAuthenticationPolicy
object which is used to configure a policy for digest authentication, such as allowing MD5 or mode without qop=auth.Declaration
Swift
public func createDigestAuthenticationPolicy() throws -> DigestAuthenticationPolicy
Return Value
a new
DigestAuthenticationPolicy
. -
Creates a new
FriendPhoneNumber
objects.Declaration
Swift
public func createFriendPhoneNumber(phoneNumber: String, label: String?) throws -> FriendPhoneNumber
Parameters
phoneNumber
The phone number.
label
the type of phone number, for example “home”, “cell”, etc. Use nil or empty for no label.
Return Value
The newly created
FriendPhoneNumber
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