Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SIP and Webrtc Integration iOS

I am trying to integrate Webrtc with PJSIP for iOS. The logic is SIP systems works separately and Webrtc system works separately. I dont mix both in any situation. I had first problem in linker trying to integrate both PJSIP's SRTP and Webrtc's SRTP. PJSIP's SRTP is much older version and Webrtc's SRTP is a newer one. I force loaded using force_load "LibPath" in linker. It solved linker error. I am able to make Webrtc connection, receive remote video track but I am not able to render remote's stream. I get the following logs. My primary suspect is PJSIP's SRTP being loaded when Webrtc's SRTP is required. Is it possible to override with Webrtc's SRTP library? or Do you have any other suggestions?

Without SIP, I was able to make proper connection and streaming between two devices and its working in a different project and even APPRTC's demo also works.

2015-06-12 18:57:41.835 [1028:134693] -[WebrtcManager peerConnection:iceGatheringChanged:] [Line 529] ICE gathering state changed: 2
testing rand_source...passed
cipher: aes cipher block chaining (cbc) mode
  instance count: 0
  self-test: 2015-06-12 18:57:42.063 [1028:134693] -[WebrtcManager peerConnection:iceConnectionChanged:] [Line 524] ICE state changed: 2
passed
cipher: aes integer counter mode
  instance count: 0
  self-test: passed
cipher: null cipher
  instance count: 0
  self-test: passed
auth func: hmac sha-1 authentication function
  instance count: 0
  self-test: passed
auth func: null authentication function
  instance count: 0
  self-test: passed
debug modules loaded:
  srtp (off)
  hmac sha-1 (off)
  aes cbc (off)
  aes icm (off)
  alloc (off)
  stat test (off)
  cipher (off)
  auth func (off)
  crypto kernel (off)
testing rand_source...passed
cipher: aes cipher block chaining (cbc) mode
  instance count: 0
  self-test: passed
cipher: aes integer counter mode
  instance count: 0
  self-test: passed
cipher: null cipher
  instance count: 0
  self-test: passed
auth func: hmac sha-1 authentication function
  instance count: 0
  self-test: passed
auth func: null authentication function
  instance count: 0
  self-test: passed
debug modules loaded:
  srtp (off)
  hmac sha-1 (off)
  aes cbc (off)
  aes icm (off)
  alloc (off)
  stat test (off)
  cipher (off)
  auth func (off)
  crypto kernel (off)
like image 796
Dhilip Avatar asked Nov 10 '22 11:11

Dhilip


1 Answers

I had to add namespaces in PJSIP srtp libs to avoid symbol collisions. Now both co exist

like image 139
Dhilip Avatar answered Nov 14 '22 21:11

Dhilip