go2rtc icon indicating copy to clipboard operation
go2rtc copied to clipboard

Feature Request: PJSIP VoIP call on API Trigger and/or VoIP virtual phone

Open TheBlueKingLP opened this issue 1 year ago • 23 comments

It would be awesome if this is able to initiate a 2 way audio + video call to a VoIP server such as Asterisk or FreePBX so I can receive calls from my Reolink doorbell or any other camera supporting 2 way audio, which already works great, with this.

[Doorbell] <---RTSP---> [go2rtc] <---SIP Secure + Secure Real-time Transport Protocol---> [SIP Soft Phone or PBX]

How it should work:

Plan A: When an API endpoint is triggered, go2rtc should initiate a video VoIP call, bridging the video feed from the camera to the call. i.e. go2rtc should place a VoIP call to a specified SIP VoIP server or SIP URI

Plan B: go2rtc should act as a SIPS client(i.e. a virtual video phone), when it receives a call, it should bridge the camera video feed, microphone and audio from the camera, to the video call. i.e. go2rtc should accept the VoIP call and act like a SIP phone with video capability.

TheBlueKingLP avatar Jul 30 '23 08:07 TheBlueKingLP

  • why two plans?
  • what is endpoint? Go2rtc special new API for init call?
  • what will be after Asterisk get the call?

AlexxIT avatar Jul 30 '23 11:07 AlexxIT

  1. 2 plan to see which one people prefers and/or easier to implement
  2. as long as it can be triggered, it is fine
  3. sorry, not quite sure what you mean here

TheBlueKingLP avatar Jul 30 '23 11:07 TheBlueKingLP

I'm not have experience with SIP technology. I only know about SDP exchange process on start. I don't understand why people still use this technology.

AlexxIT avatar Jul 30 '23 17:07 AlexxIT

It is the industry standard for VoIP phones. As far as I know all VoIP phones uses this protocol and I haven't heard of one that uses something else. It should be simple to implement with something like srtp and sip libraries. Haven't looked at those in depth but they might work?

TheBlueKingLP avatar Jul 30 '23 18:07 TheBlueKingLP

So you have some special device (phone), that can accept video call from Asterisk?

I can't understand why anyone would need special phones when everyone has a smartphone.

AlexxIT avatar Jul 31 '23 03:07 AlexxIT

It does not have to be a special device/phone. There are software phones for android/iOS/macOS/Windows/Linux for example Linphone(free and open source) or Bria (paid or free trial). Or calls can be redirected to a public phone line by using a SIP trunk(a phone line that connects VoIP to the public switched telephone network). For example Twilio voice or VoIP.ms

SIP trunks can be handled by an Asterisk or FreePBX server which will either bridges between the go2rtc server and the trunk OR just dials an extension(internal phone number in the PBX) which will ring the software phone or even hardware VoIP phone

TheBlueKingLP avatar Jul 31 '23 06:07 TheBlueKingLP

What the easiest and friendly way for setup SIP server for tests?

AlexxIT avatar Jul 31 '23 06:07 AlexxIT

FreePBX. Complete setup guide. Linphone on Android works great for a software phone.

I can also guide you through it if you have any issues while setting it up, if you prefer.

TheBlueKingLP avatar Jul 31 '23 08:07 TheBlueKingLP

This is also something I'm interested in. Just having the doorbell call my phone and have a phone conversation with whoever is at the door.

Really, the dream is to be able to have a video call, like facetime or google meet/duo, whoever is at the door and have a tablet that displays my dumb face to the person at the door (but only if I want them to see me).

Anyway, +1 vote for SIP calling doorbell.

backcountrymountains avatar Aug 02 '23 14:08 backcountrymountains

This is also something I'm interested in. Just having the doorbell call my phone and have a phone conversation with whoever is at the door.

Really, the dream is to be able to have a video call, like facetime or google meet/duo, whoever is at the door and have a tablet that displays my dumb face to the person at the door (but only if I want them to see me).

Anyway, +1 vote for SIP calling doorbell.

SIPS + SRTP does support video call, only one way though(you will be able to see the person who is at the door), unless you have someway(a wall display?) to display your face to them

TheBlueKingLP avatar Aug 03 '23 04:08 TheBlueKingLP

I don't know if it possible to use facetime API. I think it's possible to use Duo API. But any Google API always crazy hard to use. I think it's possible to use Telegram API. And it shouldn't be very hard. But call should be done from account of some exist user.

AlexxIT avatar Aug 03 '23 06:08 AlexxIT

I would prefer SIPS + SRTP though, this allows local offline use and selfhost while the ones you have mentioned requires cloud.

TheBlueKingLP avatar Aug 03 '23 08:08 TheBlueKingLP

I would be totally happy with just SIP calling!

I can't imagine how challenging it would be to set up video calling. There are so many different options that it seems like a huge cluster. A phone call seems pretty standard and works on everyone's phone. Maybe someday in the future when all of these tech and phone companies get together and settle on one standard for video calling (LOL!) I will be able to video chat with the person at the door from my flying drone car.

backcountrymountains avatar Aug 04 '23 15:08 backcountrymountains

This is related to https://github.com/AlexxIT/go2rtc/issues/409.

felipecrs avatar Aug 19 '23 17:08 felipecrs

Also interested because i could integrate the Reolink doorbell with any smart display and android tablet without the need for a cloud based application.

Vaarlion avatar Feb 05 '24 14:02 Vaarlion

This would be awesome as it would effectively enable SIP support for any camera that go2rtc can support 2 way audio for. I agree on the surface it seems silly, but it actually does enable a lot of options for people to automate.

los93sol avatar Mar 09 '24 17:03 los93sol

What the easiest and friendly way for setup SIP server for tests?

You may also find our Asterisk add-on to come in handy: https://github.com/TECH7Fox/asterisk-hass-addons#readme

I use it daily for a fully local and HA communication with my Dahua VTO doorbell.

felipecrs avatar Mar 09 '24 18:03 felipecrs

@felipecrs I'm actually using it already, but I'm stuck with how to get my cameras working with it since they don't support SIP. I'm able to get the sip card to show the camera, but not exactly what I'm looking for because two way audio won't work with that arrangement.

los93sol avatar Mar 09 '24 18:03 los93sol

lol if your cameras don't support SIP why are you even using it then? just use go2rtc with the webrtc card or the frigate card.

felipecrs avatar Mar 09 '24 18:03 felipecrs

I have that, but what I really want is to receive a call which having it connected to asterisk would enable for me

los93sol avatar Mar 09 '24 18:03 los93sol

I see now, you want to convert a non-SIP camera to SIP basically. That's a cool use case too.

felipecrs avatar Mar 09 '24 18:03 felipecrs

Exactly, thought I could get away with using rtsp-app in the asterisk addon to pull it off, but doesn't look like it's compiled into the version for the Pi so got walled there too. If you've got any ideas how to do it please lmk

los93sol avatar Mar 09 '24 18:03 los93sol

If you mean https://github.com/tommyjlong/app_rtsp_sip, yes, it is compiled into the add-on, for all platforms.

If you want to continue this discussion, please open an issue in the add-on. I don't think people subscribed here wants to be part of this conversation.

felipecrs avatar Mar 09 '24 18:03 felipecrs