cwliu / linphone-swift-demo Goto Github PK
View Code? Open in Web Editor NEWA simple demo to integrate liblinphone SDK in Swift
A simple demo to integrate liblinphone SDK in Swift
2022-01-23 23:00:49:208 belle-sip-message-Changing [client] [SUBSCRIBE] transaction [0x28301dbc0], from state [INIT] to [TRYING]
2022-01-23 23:00:49:209 belle-sip-message-channel [0x10f5a0000]: message sent to [UDP://enswitchcc2.mypbxmanager.net:5060], size: [611] bytes
SUBSCRIBE sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP 10.61.214.235:53143;branch=z9hG4bK.MqmR14cOK;rport
From: sip:[email protected];tag=xcmmGj4ga
To: sip:[email protected]
CSeq: 20 SUBSCRIBE
Call-ID: HJblEAfNhc
Max-Forwards: 70
Supported: replaces, outbound, gruu
Event: dialog
Expires: 1000
Contact: sip:[email protected];gr=urn:uuid:b83f1cec-ba25-00a9-80a9-8417e7ad27b5
Accept: application/pidf+xml
Accept: application/sdp
Accept: text/plain
Accept: application/vnd.gsma.rcs-ft-http+xml
Accept: application/dialog-info+xml
User-Agent: Unknown
2022-01-23 23:00:49:210 liblinphone-message-LinphoneEvent [0x283064000] moving to subscription state LinphoneSubscriptionOutgoingProgress
"Outgoing proggress "
2022-01-23 23:00:49:211 liblinphone-error-linphone_event_send_subscribe(): cannot update subscription while in state [LinphoneSubscriptionOutgoingProgress]
"Transfeing The operation couldn’t be completed. (linphonesw.LinphoneError error 0.)"
2022-01-23 23:00:49:467 bctbx-message-Background task belle-sip recv channel started. Unknown remaining time since application is not fully in background.
2022-01-23 23:00:49:468 belle-sip-message-channel [0x10f5a0000]: starting recv background task with id=[a].
2022-01-23 23:00:49:469 belle-sip-message-channel [0x10f5a0000]: received [489] new bytes from [UDP://enswitchcc2.mypbxmanager.net:5060]:
SIP/2.0 407 Proxy Authentication Required
Via: SIP/2.0/UDP 10.61.214.235:53143;branch=z9hG4bK.MqmR14cOK;rport=53143;received=80.244.19.48
From: sip:[email protected];tag=xcmmGj4ga
To: sip:[email protected];tag=49f23af224cb9cd3aee04282a07a2815.3f26
CSeq: 20 SUBSCRIBE
Call-ID: HJblEAfNhc
Proxy-Authenticate: Digest realm="enswitchcc2.mypbxmanager.net", nonce="Ye3DLWHtwgFliHuQj0MFCk/WAGhDOnbW"
Server: Enswitch SIP proxy
Content-Length: 0
2022-01-23 23:00:49:478 belle-sip-message-channel [0x10f5a0000] [489] bytes parsed
2022-01-23 23:00:49:479 belle-sip-message-Found transaction matching response.
2022-01-23 23:00:49:479 belle-sip-message-Changing [client] [SUBSCRIBE] transaction [0x28301dbc0], from state [TRYING] to [COMPLETED]
2022-01-23 23:00:49:480 liblinphone-message-Op [0x10c70c0a0] is terminated, nothing to do with this [407]
2022-01-23 23:00:49:480 belle-sip-message-channel [0x10f5a0000]: ending recv background task with id=[a].
2022-01-23 23:00:53:727 belle-sip-message-channel [0x10f5a0000]: keep alive sent to [UDP://enswitchcc2.mypbxmanager.net:5060]
2022-01-23 23:00:54:486 belle-sip-message-Changing [client] [SUBSCRIBE] transaction [0x28301dbc0], from state [COMPLETED] to [TERMINATED]
2022-01-23 23:00:54:488 belle-sip-message-Client SUBSCRIBE transaction [0x28301dbc0] terminated
2022-01-23 23:00:54:488 liblinphone-message-Destroying op [0x10c70c0a0] of type [SalOpUnknown]
2022-01-23 23:00:54:489 belle-sip-message-transaction [0x28301dbc0]: ending transaction background task with id=[9].
2022-01-23 23:00:54:491 belle-sip-message-Transaction [0x28301dbc0] deleted
please help
I edited the Secret.plist file with new and correct credentials, but the app freezes upon launch.
Thanks
is it same with receive call ? i can't find autoPickImcomingCall method. and i just can find receiveCall().
and it's same with idleCall()
您好,您的代码没有使用界面添加账号,或者说没有能够看到的界面交互,我不是很明白您在demo里面做了什么功能,我也无法运行验证,因此我期待能够有一次附带界面的更新,能够使我们更清楚的知道您demo的价值。现在我公司需求抽取linphone中的网络电话和视频聊天的模块,不知您的demo是否可以帮助我?
Can anyone please write a simple guide for sending dtmf?
Have you considering upgrading the project to using the Linphone frameworks since static libraries are no longer supported?
I'm trying to make record a call, only the file is not saved. I do not even know if I'm recording.
My code looks something like this:
//////////////
let currentCall = linphone_core_get_current_call(lc)
let currentCallParameters = linphone_call_get_current_params(currentCall)
let path = Bundle.main.path(forResource: "call", ofType: "wav")
linphone_call_params_set_record_file(currentCallParameters, path)
/////When the call begins
let currentCall = linphone_core_get_current_call(lc)
linphone_call_start_recording(currentCall)
/*
--This message appears--
ortp-error-linphone_call_start_recording(): no output file specified. Use linphone_call_params_set_record_file().
*/
/////When the call ends
let currentCall = linphone_core_get_current_call(lc)
linphone_call_stop_recording(currentCall)
let currentcallparameters = linphone_call_get_current_params(currentCall)
let file = linphone_call_params_get_record_file(currentcallparameters)
let fileStr: String? = String(validatingUTF8: file!)
/*
It's the same path I added.
*/
I've tried other ways, but none of them work. I hope someone can help me.
Thank you.
I see how to load the codec based on the sample they provide. I was able to replicate it using your project, code is something like this:
// Load plugins if available in the linphone SDK - otherwise these calls will do nothing let factory = linphone_core_get_ms_factory(lc); libmssilk_init(factory); libmsamr_init(factory); libmsx264_init(factory); libmsopenh264_init(factory); libmsbcg729_init(factory); libmswebrtc_init(factory); linphone_core_reload_ms_plugins(lc, nil)
But the problem I have is, how to enable the use of the codec. At least in their sample app when it's loaded it shows in their settings but to use it you have to enable it. Do you have an idea on how to load and enable that codec?
I guess the typing linphonerc222
should be linphonerc
to match the file
linphonerc
This repository doesn't upgrade nicely. Have you thought about updating the code to Swift 3?
I was trying to make call but it return me this fail state. My app is registered successfully with my server. I don't know what happen with my app. any idea???
library not found for -lstdc++.6.0.9
Use the Swift wrapper for LinPhone
Thanks for the awesome sample for Swift. I was wondering if there was any to listen to registration_state_changed?
let registrationStateChanged: LinphoneCoreRegistrationStateChangedCb = {
(lc: Optional<OpaquePointer>, proxyConfig: Optional<OpaquePointer>, state: _LinphoneRegistrationState, message: Optional<UnsafePointer<Int8>>) in
switch state{
case LinphoneRegistrationNone: /**<Initial state for registrations */
NSLog("LinphoneRegistrationNone")
case LinphoneRegistrationProgress:
NSLog("LinphoneRegistrationProgress")
case LinphoneRegistrationOk:
NSLog("LinphoneRegistrationOk")
case LinphoneRegistrationCleared:
NSLog("LinphoneRegistrationCleared")
case LinphoneRegistrationFailed:
NSLog("LinphoneRegistrationFailed")
default:
NSLog("Unkown registration state")
}
}
From the above call back I'd like to call another method to carry out other operations. I tried calling a method & I got a C function pointer cannot be formed from a closure that captures context. Also I tried the below method but it threw the same error.
let classObject = UnsafeMutableRawPointer(Unmanaged.passRetained(self).toOpaque())
And from inside the registrationStateChanged closure :
let some = Unmanaged<LinphoneManager>.fromOpaque(classObject).takeUnretainedValue()
Can you please help me out with this one? Thanks a lot
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.