iOS集成使用VialerSIPLib

PJSIP撥打電話庫:VialerSIPLib藤乙,這個應(yīng)該是Github上能找到上手門檻比較低并且比較強(qiáng)大的PJSIP庫了燕差。

0絮爷、運(yùn)行GitHub上VialerSIPLib的Demo

0.1、clone 或 下載zip埋哟,然后pod install
0.2笆豁、修改Keys.swift.example文件名為Keys.swift,并為Keys.swift中的屬性賦值

可能會出現(xiàn)錯誤PJSUA_IP_CHANGE_OP_COMPLETED 未定義赤赊,將VSLEndpoint.m中這段代碼注釋了即可

//        case PJSUA_IP_CHANGE_OP_COMPLETED: {
//            VSLLogDebug(@"The ip change process has completed, status: %s", statusmsg);
//            [VSLEndpoint sharedEndpoint].ipChangeInProgress = NO;
//            break;
//        }

1闯狱、集成

pod 'VialerSIPLib', "3.7.3"
1.1、同時添加一下代碼
post_install do |installer_representation|
    installer_representation.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
          config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)']
            config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'PJ_AUTOCONF=1'
            config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '10.0'
        end
    end
end
1.2抛计、如果Podfile文件中使用了use_frameworks!哄孤,需添加一下代碼。否則會報“The ‘Pods-XXX‘ target has transitive dependencies that include statically linked binaries”
pre_install do |installer|
  # workaround for https://github.com/CocoaPods/CocoaPods/issues/3289
  Pod::Installer::Xcode::TargetValidator.send(:define_method, :verify_no_static_framework_transitive_dependencies) {}
end

2吹截、使用

2.1瘦陈、配置VialerSIPLib
- (void)configureVialerSIPLib
{
    VSLEndpointConfiguration *endpointConfiguration = [[VSLEndpointConfiguration alloc] init];
    VSLTransportConfiguration *updTransportConfiguration = [VSLTransportConfiguration configurationWithTransportType:VSLTransportTypeUDP];

    endpointConfiguration.transportConfigurations = @[updTransportConfiguration];

    NSError *error;
    BOOL success = [[VialerSIPLib sharedInstance] configureLibraryWithEndPointConfiguration:endpointConfiguration error:&error];
    if (!success || error) {
        NSLog(@"Failed to startup VialerSIPLib: %@", error);
    }
}
2.2、注冊SIP賬號
- (void)addSipUser
{
    FGSipUserModel *model = [[FGSipUserModel alloc] init];
    model.sipAccount = @"";
    model.sipPassword = @"";
    model.sipDomain = @"";
    model.sipProxy = @"xxx.xxx.xxx:5060";
    
    NSError *error;
    self.account = [[VialerSIPLib sharedInstance] createAccountWithSipUser:model error:&error];
    if (error) {
        NSLog(@"Failed to create Account: %@", error);
    } else {
        NSLog(@"Succeed to create Account");
    }
}

1.上面的FGSipUserModel類需實(shí)現(xiàn)SIPEnabledUser協(xié)議.
2.這里的self.account這樣定義@property (nonatomic, strong) VSLAccount *account;波俄,最好是作為AppDelegate的屬性晨逝。

// FGSipUserModel.h
#import <Foundation/Foundation.h>
#import <VialerSIPLib/VialerSIPLib.h>

@interface FGSipUserModel : NSObject<SIPEnabledUser>
@property (nonatomic, readwrite) NSString *sipAccount;
@property (nonatomic, readwrite) NSString *sipPassword;
@property (nonatomic, readwrite) NSString *sipDomain;
@property (nonatomic, readwrite) NSString *sipProxy;
@end
// FGSipUserModel.m
#import "FGSipUserModel.h"

@implementation FGSipUserModel
@synthesize sipAccount = _sipAccount;
@synthesize sipPassword = _sipPassword;
@synthesize sipDomain = _sipDomain;
@synthesize sipProxy = _sipProxy;
@end
2.3、撥打電話
[[VialerSIPLib sharedInstance].callManager startCallToNumber:@"8007"
                                                  forAccount:self.account
                                                  completion:^(VSLCall * _Nullable call, NSError * _Nullable error) {
        if (error) {
            NSLog(@"Call error:%@", error);
        }
}];

文章還未完成懦铺,敬請期待...

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末捉貌,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌趁窃,老刑警劉巖牧挣,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異醒陆,居然都是意外死亡瀑构,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門刨摩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來寺晌,“玉大人,你說我怎么就攤上這事澡刹≌厶辏” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵像屋,是天一觀的道長。 經(jīng)常有香客問我边篮,道長己莺,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任戈轿,我火速辦了婚禮凌受,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘思杯。我一直安慰自己胜蛉,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布色乾。 她就那樣靜靜地躺著誊册,像睡著了一般。 火紅的嫁衣襯著肌膚如雪暖璧。 梳的紋絲不亂的頭發(fā)上案怯,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機(jī)與錄音澎办,去河邊找鬼嘲碱。 笑死,一個胖子當(dāng)著我的面吹牛局蚀,可吹牛的內(nèi)容都是我干的麦锯。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼琅绅,長吁一口氣:“原來是場噩夢啊……” “哼扶欣!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤宵蛀,失蹤者是張志新(化名)和其女友劉穎昆著,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體术陶,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡凑懂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了梧宫。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片接谨。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖塘匣,靈堂內(nèi)的尸體忽然破棺而出脓豪,到底是詐尸還是另有隱情,我是刑警寧澤忌卤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布扫夜,位于F島的核電站,受9級特大地震影響驰徊,放射性物質(zhì)發(fā)生泄漏笤闯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一棍厂、第九天 我趴在偏房一處隱蔽的房頂上張望颗味。 院中可真熱鬧,春花似錦牺弹、人聲如沸浦马。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽晶默。三九已至,卻和暖如春航攒,著一層夾襖步出監(jiān)牢的瞬間荤胁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工屎债, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留仅政,地道東北人。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓盆驹,卻偏偏與公主長得像圆丹,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子躯喇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容