+2
Waiting for user's reply

2N Helios IP Verso (SIP) with i3 Pro

Wouter van der Post 5 months ago in Applications / i3 Pro • updated by Wouter Verbeeck 3 weeks ago 35

I have a 2N Helios IP Verso intercom that I want to use with iRidium. I started with the intercom sample project (http://wiki2.iridiummobile.net/SIP_Telephony) and iRidium connects to the intercom, the status is "On Hook" after starting the emulator.

I can also call the intercom from iRidium, it picks up the call and audio works.

Only when I press the button on the intercom, the call does not get through to iRidium.

In the trace log of the intercom I can see that it calls the correct number (the number which iRidium uses to "log on" to the SIP server that's running in the 2N intercom).


I've also tested the setup with a softphone (Jitsi) on my laptop, that works fine both ways.


Is there a possibility to supply an iRidium studio version with more logging enabled so I (or 2N) can investigate where the problem lies?

Waiting for user's reply

Hello!


Please specify the version of i3Pro that you are using. Also please make a snapshot of the network when you try to call from the intercom. You can take a snapshot of the network using "Wireshark" app. You will need to run this program on the computer where you run Iridium.

v1.2.0.19684


I've made a wireshark trace from both the laptop running iRidium, as well as from the 2N intercom. Attached are both files. I ran the traces until the intercom call timed out (about 40 seconds).


call from intercom to iridium - PC trace.pcapng

call from intercom to iridium - 2N trace.pcap


Intercom IP: 192.168.1.1

iRidium IP: 192.168.1.100

We looked at your network snapshots and found one inaccuracy. When you call, the 2N panel sends an invitation not to the Iridium port. Iridium listens to the port 63875





 but 2N sends a request to port 5060.



The next line, after the REGISTER command is an OK from iRidium to the intercom, so is that actually the problem?


And why does iRidium listen on port 63875 if the driver settings are set to 5060??

Can you change that listen port somewhere? I can't find it in the 2N intercom or in iRidium...


Hello!


Iridium listens to any free port. During the registration on the server, Iridium reports its port to the server. But for some reason, the 2N server ignores this port. Unfortunately, in Iridium you can not specify any specific port for listening. The port which you specify in the SIP driver settings is needed to connect to the SIP server, but Iridium can work on a different port.

So in order to fix this issue, 2N should do something? Or can you modify something in iRidium to make this work...? We kind of need this to work for a big upcoming project.

We will try to check your problem in our office, but I think this is a bug of the 2N panel.

We have contacted 2N and supplied them with the same trace files. They told us the INVITE command is being sent out properly, but on port 5060 since the intercom does not contain a full-blown SIP server implementation.


On their website is a manual that describes how to configure Zoiper (softphone client) and one of the steps is to disable "Random Port" and set this to 5060.


https://faq.2n.cz/pages/viewpage.action?pageId=44697318#ZoiperforAndroid/iOS/Windows-Howtoconfigureitwith2N®HeliosIP?-ZoiperforiOS-directcallsettings


Can you add an option to the SIP driver that allows us to also disable the Random Port usage and instead use a static port, this would be very helpful in the project we have with this 2N intercom

Hi Wouter and Dmitry,

We have a tested the supplied versions of I3pro JS projects on 2N Helios IP Verso.

We do not have problems establishing the connection, only some issus with the SIP image and sometimes with the audio.

We merged the SIP+CLIENT+iRidium+for+smartphone into our project to obtain our result.

As a workaround for the SIP-image, we created link from the streaming camera-image.


Make sure that both your devices (2N and i3) are logged on tho your SIP server. 

-> 2N door station does NOT have a SIP-server. It is a SIP client.

I recall that any direct connection would not be possible to i3.

Unless this is changed.

As soon as you log both devices on  to SIP server, it works. (Liphone tested, freepbx tested)


If I'm mistaking with one of my statements here, please tell me.


Success!


Kind regards,

Wouter Verbeeck

Hello Wouter,


I’m not talking about the combination iRidium + 2N Verso + SIP server. I’m trying to use the 2N without a SIP server. With an Asterisk (FreePBX) server in between it works (almost) perfectly.


I want iRidium to work directly with the 2N intercom. The intercom has a “sort of” server implementation, and iRidium can register correctly with the intercom. It’s just one issue with the ports that are being used. 

If I start iRidium, let it register and watch the wireshark trace to find out at which port it’s registered, then change the port in the 2N (sip:[number]@ip:port) I can call from the intercom to iRidium and vice versa. So this confirms that the setup can work, if only iRidium would offer the possibility to not use a random port.


Regards, Wouter. 

Hi, Wouter

We have no plans to make the implementation of a direct connect to 2N, just using the SIP server.

Sorry to hear that, it would make our lives as integrators a lot easier if this (in my opinion) small modification to the SIP driver would be made. Just register on port 5060 and only listen on 5060.. can't be that complex right?

Hi,


this is very good news for us too.

Nice job!

I hope you get it to work. Keep us posted!.


Kind regards,

Wouter V

small question:

when using sip server, did you also have trouble getting the sip image quality to a decent level?

We have troubles getting the sip image to a quality image and can't seem to find a solution.

This is little off-topic, but we had to create a work-around.


I'm looking forward to your developpement.


best regards,

Wouter

I never bothered trying to get the SIP image working, I just use the RTSP stream instead.

Today I'm trying to get SIP video working, I've enabled H263 (and H263p) in Asterisk and like in the intercom sample project from iRidium I'm settings the Image property on the video object:


IR.GetItem("Talking").GetItem("sipvideo").GetState(0).Image = "sip_image://";


However when I place a call from the intercom and answer it in iRidium, there is no video and the Asterisk log shows:


[2017-09-27 17:29:49] WARNING[1800][C-0000002f] chan_sip.c: Ignoring video stream offer because port number is zero


Have you got any idea?

Hello!


Can you get the video stream using another software SIP phone? For example, Zoiper.


Yes, I've used Jitsi softphone.. works fine

When you answered the call, did you send 0 or 1 to the "ANSWER" command ?

Note that if you want to do a video call, than you need to send 1 to the "ANSWER" command in the SIP driver.




I've changed the number to 1, doesn't make a difference.

Hello!


As far as I understand, you connect to the 2N intercom directly. But, unfortunately, our driver is designed only to work through the SIP server. Therefore, try using the SIP server to work with your doorphone. You can use a 3CX server for example.

sorry, forgot to mention that at this time I’m already using FreePBX server in between. Since the whole setup doesn’t work when I connect directly (that was the whole reason for this topic in the first place)


The right codecs are enabled on the server (h263, h263p, h264) and also video is enabled on the server. 

Hello!

As I understand it now you can get a video stream using the SIP protocol. Right ?

Also we tested on our door phone 2N - video stream via SIP protocol is transmitted to Iridium normally.

No, no video with SIP yet.

I'll use the RTSP stream for the video, can't spend anymore time on this issue.

Hello!


In this case, do you still need our help?

Hello!


What video codec do you use in iRidium? If you turned on both video codecs, then you will need to turn off one of them

For example:




In other words you should only use one codec that you use on your doorphone.

I had both enabled, I was confident that iRidium would automatically choose the best available codec. I don't have the intercom available at this moment so I can't do anymore testing at this time.


I will test this the next time I have one and will open a new topic if I still can't get the video to work.

Hi,

Last month we have tester and ran a setup with i3pro , 2n and  raspbx. Works fine except for image quality. 

Make sure that your pbx sip serveronly uses the richt codecs with richt prioriteit. See chan_sip settings. Also your proxy setting neef to be correct for your network. Have screenshots?


Kind regards,

Wouter Verbeeck

Hi, sure if you can share some screenshots that would be helpful. Can you paste them here in this topic?

I just want to put in an extra thumbs up to get the setting available for direct SIP calls, a.k.a where iRidium listens on a fixed port such as 5060 as 99% of the SIP clients can do. Especially because the common use for SIP in iRidium will be for door intercom. In these situations (in home installs) we mostly do not have a separate SIP server available. Even, if I'm at a client (home install) I do not want to introduce a new single point of failure and install a SIP server just to get a working doorintercom-client connection. It is just another box that can fail and just another piece of software which has to be maintained. 

Hi,

I agree with you that an extra "box" is an extra point of failure. But working directly, without a server, is not a "fixed port problem", but an entirely different mechanism of interaction. We put this task into our roadmap, but it is not in the nearest plans for development. Perhaps we will return to this task in April, but not before, sorry.

Hi, I disagree :)


In peer-to-peer communication the destination of the call needs a fixed open port, not a random port. How would the doorintercom otherwise know on which destination port he can reach the clients if they are random? 

The sender from which the call originates is of course allowed to use a random source port as most protocol provide a mean of letting the other side know on which port they would like to receive their reply.


This is exactly why SIP servers comply to the ISO standard and listen on a fixed port (as do all major transport services such as email, DNS, etc.). If the solution is not in the fixed port, implementing a server to be the intermediary would not have been the (temporary) other solution.


To be able to set a fixed port on which iRidium listens for an incoming SIP call is the solution. Provided there are no other troubles in the used SIP libraries which could prevent otherwise. The mechanism in which the call is setup in a peer-to-peer setup is the same as if it would be routed through a SIP proxy or PBX. The only thing that might be a problem is that the SIP libraries used in iRidium might need an extra configuration to allowed calls from unregistered sources. As registration is not used in a peer-to-peer setup. 

I described to you without going into technical details, but the problem is not only in the "fixed port". If it was an "easy fix" we would have done it a long time ago, but this is a serious revision of the driver's SIP. I specified the dates.

if you use raspbx on a pi as sip-server, it works good. You can make contact, but last september we had an issue with poor image quality. Not sure if this is fixed yet.

kind regards

Wouter


Works fine, except for quality of sip image. We bought the http license for 2N, which is one time investment.

if necessary you can always go trough linphone SIP server (free and online), but we did not create configuration for that one.


Kind regards,


Wouter