Git Product home page Git Product logo

webrtc-to-sip's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

webrtc-to-sip's Issues

Parallel call forking case

Hi,
In the parallel call forking case where branches have different media requirements, for example one branch is SDES while the other one is DTLS, it's needed to tell rtpengine that those are different branches. There is an option in rtpengine_manage function for this purpose. It's via_branch option with extra_id_pv variable.
Do you have any idea on how we can integrate the usage of this option in rtpengine offer and answer commands in a simplest way?

can i run all of in same server?

i want to know i can install Server - Kamailio + RTPEngine + Nginx (WEBRTC client) and Server - TURN on same server? or what?

chat error

hello..
i have done this setup but chat is not working..
getting error when sending message

here i have attached screenshot
capture

E: Unable to correct problems, you have held broken packages.

root@debian-pc:~/rtpengine# apt-get install -y ngcp-rtpengine
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
ngcp-rtpengine : Depends: ngcp-rtpengine-daemon (>= 7.1.1.5+0mr7.1.1.5) but it is not going to be installed
Depends: ngcp-rtpengine-recording-daemon (>= 7.1.1.5+0
mr7.1.1.5) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Docket compose

Hi there,

I was wondering if you could put together a docker compose file as an example for best practice?

Many thanks,

webrtc solution for sip protocol

Hello, I thank the project manager for sharing the knowledge. I have a framework that currently works only with the SIP protocol. Because of this, I had the need to make some changes in my file (kamailio.cfg) to establish communication between the webrtc and the SIP protocol.

  • In the configuration currently entered, it only works with webrtc
    WEBRTC <-> WEBRTC

kamailio.cfg changes

listen=udp:PRIVATEIP:PORT advertise PUBLICIP:PORT
listen=tcp:PRIVATEIP:PORT advertise PUBLICIP:PORT
listen=tls:PRIVATEIP:PORTTLS advertise PUBLICIP:PORTTLS

For IPV6 it is the same configuration

listen=udp:IPV6Server:PORT
auto_bind_ipv6=1
dns_try_ipv6=yes

The changes below are to enable client traversal over NAT without changing the SDPs coming from the Websocket transport again. (These changes in question enable WEBRTC <-> SIP communication).

route [RELAY] {
	if ($ru == "transport=udp") {
            if (has_body("application/sdp")) {
                rtpengine_manage();
            }
	}
}
onreply_route[MANAGE_REPLY] {
          if ($ru == "transport=udp") {
            if (has_body("application/sdp")) {
                rtpengine_manage();
            }
        }
}

Build doesn't work

When running command :

./debian/flavors/no_ngcp

-bash: ./debian/flavors/no_ngcp: No such file or directory

How to fix this?

SDP offer/answer issue

Atleast at the writing of this ticket the offer/invite sdp headers both contain a=setup:actpass which causes chrome (didn't try any other browser) drop the call. rtp_engine is always adding actpass even with dtls=no or dtls-passive command line argument.

iptables.sh issue

I get error when running iptables.sh script. I use Debian 9, and installed kamailio from debs in http://deb.kamailio.org/

iptables: No chain/target/match by that name.
ip6tables: No chain/target/match by that name.

the location of error is this

# RTPEngine
$IPTABLES -I INPUT -p udp -j RTPENGINE --dport $RTP --id 0
$IP6TABLES -I INPUT -p udp -j RTPENGINE --dport $RTP --id 0

Thank you for your help.

SIP Client with WebRTC SDP

I am creating a SIP client with WebRCT SDP. I am able to create call between clients.

I just to in Kamailio that if Client has WebRCT SDP or Normal SDP. If client has Normal SDP then I will engage RTPENGINE to transcode.

How can I do that ?

E: Package 'ngcp-keyring' has no installation candidate

Followed the installing guidance to install ngcp-keyring and ngcp-rtpengine on my debian bookworm docker but got the error message listed below.

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Package ngcp-keyring is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'ngcp-keyring' has no installation candidate

Is there anything I can do to solve this issue? I would appreciate any idea or help.

Handling Late-Offer Re-invites

Hi,

I am using the project as a the basis for a webrtc -> Sip gateway, and I am seeing an issue with late-offer reinvites that I was wondering if you could shed some light on. In this WebRTC -> SIP call flow, the sip endpoint sends back a re-invite with no media info, and then later sends an ACK with the media info in it. Right now the config does not handle this properly, and passes the ack straight through to the webrtc client, which then breaks the flow because the ack does not send DTLS and SRTP information. I have looked through the flow and I am not sure how to change this. It seems like something that could be done, but I don't know kamailio well enough yet to change it.

Any suggestions you can provide would be very helpful.

Thanks,
Andrew

could not login sipml5 demo to kamailio via websocket.

Hello,
could not register sipml5 client to kamailio server. log do not show anything.

Jul 23 03:17:09 kamailiotesting /usr/local/sbin/kamailio[14643]: DEBUG: [ip_addr.c:229]: print_ip(): tcpconn_new: new tcp connection: 27.65.211.112
Jul 23 03:17:09 kamailiotesting /usr/local/sbin/kamailio[14643]: DEBUG: [tcp_main.c:985]: tcpconn_new(): on port 60109, type 3
Jul 23 03:17:09 kamailiotesting /usr/local/sbin/kamailio[14643]: DEBUG: [tcp_main.c:1291]: tcpconn_add(): hashes: 1176:2713:3040, 12
Jul 23 03:17:09 kamailiotesting /usr/local/sbin/kamailio[14643]: DEBUG: [io_wait.h:380]: io_watch_add(): DBG: io_watch_add(0x5582ca9d6f40, 33, 2, 0x7f087f196118), fd_no=22
Jul 23 03:17:09 kamailiotesting /usr/local/sbin/kamailio[14643]: DEBUG: [io_wait.h:602]: io_watch_del(): DBG: io_watch_del (0x5582ca9d6f40, 33, -1, 0x0) fd_no=23 called
Jul 23 03:17:09 kamailiotesting /usr/local/sbin/kamailio[14643]: DEBUG: [tcp_main.c:4139]: handle_tcpconn_ev(): sending to child, events 1
Jul 23 03:17:09 kamailiotesting /usr/local/sbin/kamailio[14643]: DEBUG: [tcp_main.c:3818]: send2child(): selected tcp worker 2 13(14638) for activity on [tls:128.199.156.64:4443], 0x7f087f196118
Jul 23 03:17:09 kamailiotesting /usr/local/sbin/kamailio[14638]: DEBUG: [tcp_read.c:1603]: handle_io(): received n=8 con=0x7f087f196118, fd=9
Jul 23 03:17:09 kamailiotesting /usr/local/sbin/kamailio[14638]: DEBUG: tls [tls_server.c:197]: tls_complete_init(): completing tls connection initialization
Jul 23 03:17:09 kamailiotesting /usr/local/sbin/kamailio[14638]: DEBUG: tls [tls_server.c:226]: tls_complete_init(): Using initial TLS domain TLSs (dom 0x7f087f0982f8 ctx 0x7f087f0ce348 sn [])
Jul 23 03:17:09 kamailiotesting /usr/local/sbin/kamailio[14638]: DEBUG: tls [tls_domain.c:724]: sr_ssl_ctx_info_callback(): SSL handshake started
Jul 23 03:17:09 kamailiotesting /usr/local/sbin/kamailio[14638]: DEBUG: [tcp_main.c:2430]: tcpconn_do_send(): sending...
Jul 23 03:17:09 kamailiotesting /usr/local/sbin/kamailio[14638]: DEBUG: [tcp_main.c:2464]: tcpconn_do_send(): after real write: c= 0x7f087f196118 n=4573 fd=9
Jul 23 03:17:09 kamailiotesting /usr/local/sbin/kamailio[14638]: DEBUG: [tcp_main.c:2465]: tcpconn_do_send(): buf=#12#026#003#003
Jul 23 03:17:09 kamailiotesting /usr/local/sbin/kamailio[14638]: DEBUG: [io_wait.h:380]: io_watch_add(): DBG: io_watch_add(0x5582ca9814c0, 9, 2, 0x7f087f196118), fd_no=1
Jul 23 03:17:09 kamailiotesting /usr/local/sbin/kamailio[14638]: DEBUG: tls [tls_domain.c:736]: sr_ssl_ctx_info_callback(): SSL handshake done
Jul 23 03:17:09 kamailiotesting /usr/local/sbin/kamailio[14638]: DEBUG: tls [tls_domain.c:724]: sr_ssl_ctx_info_callback(): SSL handshake started
Jul 23 03:17:09 kamailiotesting /usr/local/sbin/kamailio[14638]: DEBUG: tls [tls_domain.c:728]: sr_ssl_ctx_info_callback(): SSL renegotiation initiated by client
Jul 23 03:17:09 kamailiotesting /usr/local/sbin/kamailio[14638]: DEBUG: tls [tls_domain.c:736]: sr_ssl_ctx_info_callback(): SSL handshake done
Jul 23 03:17:09 kamailiotesting /usr/local/sbin/kamailio[14638]: DEBUG: tls [tls_domain.c:724]: sr_ssl_ctx_info_callback(): SSL handshake started
Jul 23 03:17:09 kamailiotesting /usr/local/sbin/kamailio[14638]: DEBUG: tls [tls_domain.c:728]: sr_ssl_ctx_info_callback(): SSL renegotiation initiated by client
Jul 23 03:17:09 kamailiotesting /usr/local/sbin/kamailio[14638]: DEBUG: tls [tls_domain.c:736]: sr_ssl_ctx_info_callback(): SSL handshake done
Jul 23 03:17:09 kamailiotesting /usr/local/sbin/kamailio[14638]: DEBUG: tls [tls_server.c:413]: tls_accept(): TLS accept successful
Jul 23 03:17:09 kamailiotesting /usr/local/sbin/kamailio[14638]: DEBUG: tls [tls_server.c:420]: tls_accept(): tls_accept: new connection from 27.65.211.112:60109 using TLSv1.3 TLS_AES_256_GCM_SHA384 256
Jul 23 03:17:09 kamailiotesting /usr/local/sbin/kamailio[14638]: DEBUG: tls [tls_server.c:423]: tls_accept(): tls_accept: local socket: 128.199.156.64:4443
Jul 23 03:17:09 kamailiotesting /usr/local/sbin/kamailio[14638]: DEBUG: tls [tls_server.c:434]: tls_accept(): tls_accept: client did not present a certificate
Jul 23 03:17:09 kamailiotesting /usr/local/sbin/kamailio[14638]: DEBUG: tls [tls_server.c:1170]: tls_read_f(): Reading on a renegotiation of connection (n:-1) (2)
Jul 23 03:17:09 kamailiotesting /usr/local/sbin/kamailio[14638]: DEBUG: [tcp_read.c:1370]: tcp_read_req(): EOF
Jul 23 03:17:09 kamailiotesting /usr/local/sbin/kamailio[14638]: DEBUG: [io_wait.h:602]: io_watch_del(): DBG: io_watch_del (0x5582ca9814c0, 9, -1, 0x10) fd_no=2 called
Jul 23 03:17:09 kamailiotesting /usr/local/sbin/kamailio[14638]: DEBUG: [tcp_read.c:1524]: release_tcpconn(): releasing con 0x7f087f196118, state -1, fd=9, id=12 ([27.65.211.112]:60109 -> [27.65.211.112]:4443)
Jul 23 03:17:09 kamailiotesting /usr/local/sbin/kamailio[14638]: DEBUG: [tcp_read.c:1528]: release_tcpconn(): extra_data 0x7f087f1ade00
Jul 23 03:17:09 kamailiotesting /usr/local/sbin/kamailio[14643]: DEBUG: [tcp_main.c:3250]: handle_tcp_child(): reader response= 7f087f196118, -1 from 2
Jul 23 03:17:09 kamailiotesting /usr/local/sbin/kamailio[14643]: DEBUG: tls [tls_server.c:665]: tls_h_close(): Closing SSL connection 0x7f087f1ade00

Thanks

reinvite after iceRestart does not work

Just wondering if you have any issue with doing a re-invite after doing an ice restarts. (this will force a new sdp, icecandidates, ice ufrag pwd ). This forces rtpengine to fix its ports for the new setting.
the webrtc rtpengine side is fine but the rtpengine pstn gateway side gets no audio after this reinvite.

Anyways I'm trying to jump between networks on mobile devices. like wifi to wifi, wifi to mobile, mobile to wifi, i detect a disconnect and do an ice restart. I'm also using sipjs 0.11.3 to help me with signalling between kamailio and webrtc.

sip.js and sdp error 488

Hi, I did everything you said in readme. My kamailio version is 4.2.0

I am getting 488 from client side, as you said in readme
error fires from sip.js invalid description

if (!this.mediaHandler.hasDescription(request) || this.renderbody) {
    SIP.Timers.setTimeout(fireNewSession, 0);
  } else {
    this.hasOffer = true;
    this.mediaHandler.setDescription(request)
    .then(
      fireNewSession,
      function onFailure (e) {
        self.logger.warn('invalid description');
        self.logger.warn(e);
        request.reply(488);
      }
    );
  }

I have 2 accounts trying to invite each other one is windows chrome and the other is mac chrome.

in windows chrome it appers as
Failed to parse SessionDescription. msid-semantic: Failed to get the value of attribute: msid

im mac chrome it appears as
Failed to set remote offer sdp: Called with SDP without DTLS fingerprint.

in server debug logs I see 488 errors.

May 29 14:53:36 eyonetisim /usr/sbin/kamailio[31781]: INFO: <script>: WebRTC -> SIP, bridging SRTP->RTP and removing ICE
May 29 14:53:36 eyonetisim /usr/sbin/kamailio[31782]: INFO: <script>: REPLY_TO_WS Reply from softphone: 100
May 29 14:53:36 eyonetisim /usr/sbin/kamailio[31782]: INFO: <script>: REPLY_TO_WS Reply from softphone: 488
May 29 14:53:36 eyonetisim /usr/sbin/kamailio[31782]: INFO: <script>: Failure:

I checked everything in readme as you said , but do not understand this part and I think you want to say something about this 488 error here. You say "comment out the line #!define WITH_ALWAYS_BRIDGE in etc/kamailio/kamailio.cfg". What do you mean by comment out? If I remove this in line 11 #!define WITH_ALWAYS_BRIDGE , I get compile error from kamailio.cfg file (invalid route statement) and kamailio does not start. Therefore I removed #!ifdef WITH_ALWAYS_BRIDGE and #!ifndef WITH_ALWAYS_BRIDGE from everywhere kamailio starts but nothing changes, error is same.

Please help me solving this 488 error. Is it related to rtpengine_manage flags or about Kamailio. I keep trying everything, when I remove route[RTP_BRIDGE] everything works if clients are in same network. But if not, clients do not get or share streams. Another error occurs in client side.

I really appreciate any help you can provide.

Integration with Asterisk

I managed to install and work, but the question is, how to integrate it to the asterisk (SIP SERVER) as a bridge.

Internal / external network setup

Hello,

I am trying to setup Kamailio and rtpengine to listen simulatenaously to my internal and external network.
I have several sip clients on internal network registered to kamailio (without NAT).
I want bridgle all calls (signaling and media). My local network must keep isolated.
My use cases are :
Internal SIP Client <-> external SIP Client
Internal SIP Client <- external WebRTC client

Are these use cases easily realizable? What changes would be needed ?
Thanks.

NO_PUBKEY Error in debian 10

The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 69D9C21F6D9B587E NO_PUBKEY 022CEFA649AEE1B0

Add dispatcher

Hi,
Could you add a dispatcher to your project?
So that calls were made inside kamailio as it finds the user and sent above 9 digits to servers defined in dispatcher?

how to register multiple register at WEBRTC

Hello

How can I register multiple user at WEBRTC ?
Now I am register only one user by default websip.
so how create different user and use for login at WEBRTC page?

Thanks

SIP to WebRTC calls only one way audio

Hi, I've deployed this project on a server and got it working, i can start calls vice versa (SIP <--> WebRTC, WebRTC<-->WebRTC) using the included browser SIP client and with other SIP clients as well but the issue is when i use Zoiper to call a Browser SIP client, I can only hear the voice from Zoiper.

I haven't touched the config files for Kamailio and RTPEngine.

Any suggestions? thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.