Call An IP Camera?

Home » Asterisk Users » Call An IP Camera?
Asterisk Users 9 Comments

Hi,

is it possible to “call” an IP camera? I’m thinking about something like bridging with a music stream, but instead of streaming audio, bridge with the video stream from the camera.

It would be very cool if I could just call the camera and see what’s going on. Ffmpeg shows the following streams available from the camera:

Stream #0:0: Video: h264 (Main), yuv420p(progressive), 1920×1080, 12
fps, 12 tbr, 90k tbn, 24 tbc

Stream #0:0: Video: h264 (Main), yuv420p(progressive), 640×352, 12 fps,
12 tbr, 90k tbn, 24 tbc

Perhaps it’s not even necessary to recode the stream?

9 thoughts on - Call An IP Camera?

  • Only if it talks SIP (which some do, generally door entry cameras with a push button input and often a lock release output).

    So, maybe you should treat it like a music stream such as music on hold?

    Very likely, but what you’re looking at there is the media format; you also need some sort of signalling protocol if you’re going to call it from Asterisk.

    I would start with something like https://www.voip-info.org/asterisk-config-musiconholdconf/
    https://www.voip-info.org/wiki/view/Asterisk+config+musiconhold.conf
    (or any more up to date documentation if you can find it).

    I’ve never tried that with video, but given how the media negotiation between Asterisk and SIP devices is handled, I would expect it to work given compatible codecs.

    Antony.


    I bought a book on memory techniques, but I’ve forgotten where I put it.

    Please reply to the list;
    please *don’t* CC me.

  • Unfortunately, musiconhold.conf doesn’t understand rtsp:

    #033[1;37mmoh_parse_options#033[0m: Playlist entries must be a URL or absolute path, ‘rtsp://10.10.30.20/12’ provided.

    Asterisk then ignores the configured music class when it’s given like this in musiconhold.conf (and plays music from the default class instead):

    [test]
    mode=playlist entry=rtsp://10.10.30.20/12

    So I guess that musiconhold may be limited to audio only. But who knows?
    What are the requirements for the URLs that can be used with the
    ‘playlist’ option in musiconhold.conf?

    It’s generally possible to stream stuff to devices (like phones), like when using the Playback() dialplan application to stream audio. Is it somehow possible to stream audio from programs into channels from the dialplan or somewhere else without using musiconhold.conf? If that was possible, it might be possible to stream video instead.

    Does pjsip support video? [1] would indicate that it doesn’t. However, that information seems to be over 8 years old 🙁

    [1]: https://wiki.asterisk.org/wiki/display/AST/Video+Telephony

  • [test]
    mode=custom application=ffmpeg -i rtsp://10.10.30.20/12 -map 0:0 -f rawvideo pipe:1

    WARNING[100823]: res_musiconhold.c:794 monmp3thread: poll() failed: Interrupted system call

    Other than getting lots of error messages as above, the command basically works in that ffmpeg pipes the video to STDOUT. I can use

    ‘ffmpeg -i rtsp://10.10.30.20/12 -map 0:0 -f matroska pipe:1 > some_file’

    and then play the file with mpv (rawvideo doesn’t work with mpv — but should work with a phone?).

    Why is the system call being interrupted all the time? Because asterisk doesn’t take video for music?

  • I’m curious – did you manage to get anywhere with this?

    Antony.


    It may not seem obvious, but (6 x 5 + 5) x 5 – 55 equals 5!

    Please reply to the list;
    please *don’t* CC me.