Softphone Android Video Issue

Hello Everyone,

After struggling for 2 weeks, and maybe more than 50 hours spent over the internet.

Can someone tell me if he is able to have a very simple two softphones on the same network (no nat, same domain, no firewall) calling each other with the audio AND the video.

Phone1 is 192.168.1.15
Phone2 is 192.168.1.13
Asterisk server is 192.168.1.41 port 5060 UDP and TCP are activated and registration works with the two protocols.

I am using Raspbx (Asterisk 13.17.1, FreePBX 14.0.1.8) on a raspberry pi 3 out of the box. I tried Linphone, Zoiper.

I am under the feeling that the audio works amazingly well but the video is full of bugs… Am I trying to get something working that is not possible for the moment?

I do not understand why such a simple thing is so complicated… I tried with UDP, TCP, directmedia on and off, several codec…

Shall I try with asterisk 11?

If you are able to get the video working between two softphones could you post your files (sip_custom.conf and extension_custom.conf) and tell me which app and asterisk version do you use?

Thank you for your help, I am desperate…

My sip_general_additional.conf:

vmexten=*97
useragent=FPBX-13.0.190.11(13.13.1)
disallow=all
allow=alaw
allow=vp8
context=from-sip-external
callerid=Unknown
notifyringing=yes
notifyhold=yes
tos_sip=cs3
tos_audio=ef
tos_video=af41
alwaysauthreject=yes
limitonpeers=yes
callevents=no
rtpend=20000
tcpenable=yes
context=from-sip-external
rtpstart=10000
bindport=5060
jbenable=no
rtpkeepalive=0
rtpholdtimeout=300
rtptimeout=30
srvlookup=no
videosupport=yes
tlsbindaddr=[::]:5061
tlsclientmethod=sslv2
tlsenable=no
registertimeout=20
registerattempts=0
notifyringing=yes
canreinvite=no
checkmwi=10
defaultexpiry=120
g726nonstandard=no
maxcallbitrate=384
maxexpiry=3600
minexpiry=60
notifyhold=yes
allowguest=yes
nat=force_rport,comedia
ALLOW_SIP_ANON=no
callerid=Unknown
externip=77.XXX.XXX.107
localnet=192.168.1.0/24
language=en

My sip_custom.conf:

[office-phone](!)   ; create a template for our devices
type=peer           ; the channel driver will match on username first, IP second
context=LocalSets   ; this is where calls from the device will enter the dialplan
host=dynamic        ; the device will register with asterisk
nat=no              ; assume device is behind NAT
                    ; *** NAT stands for Network Address Translation, which allows
                    ; multiple internal devices to share an external IP address.
secret=azerty       ; a secure password for this device -- DON'T USE THIS PASSWORD!
dtmfmode=auto       ; accept touch-tones from the devices, negotiated automatically
disallow=all        ; reset which voice codecs this device will accept or offer
                    ; which audio codecs to accept from, and request to, the device
                    ; in the order we prefer
transport=udp,tcp

; define a device name and use the office-phone template
[Phone1](office-phone)
allow=alaw
allow=vp8
videosupport=yes

; define another device name using the same template
[Phone2](office-phone)
allow=alaw
allow=vp8
videosupport=yes

My extension_custom.conf:

[LocalSets]

exten => 101,1,Dial(SIP/Phone1)

exten => 102,1,Dial(SIP/Phone2)

exten => 200,1,Answer()
    same => n,Wait(2)
    same => n,Playback(hello-world)
    same => n,Hangup()

Please provide the SDP negotiation from sip set debug on and core set debug 5, as taken from an enabled full.log.

Also please do it without FreePBX, as we can’t debug issues that turn out to be from FreePBX here, and the use of FreePBX can make logs very difficult to read.

Hi David and thank you for your help! Here is the log (sip set debug on and core set debug 5):

For a better understanding, here is what I did with the Zoiper App:
_ Register Phone 101. (192.168.1.15).
_ Register Phone 102. (192.168.1.13).
_ Call from the Phone 101 to the Phone 102.
_ The Phone 102 answers.

Here is the link for the log:
https://pastebin.com/GWcVbXr8

Today I tried with Asterisk 11 (instead of 13), and also with a raspberry pi 2 instead of a pi 3 as a server. I get the same results every time…

EDITED with the link of the log on Pastebin

Can you tell me which button on that site actually gives the file as it looks like most of the buttons are there to trap the unwary into downloading paid content, which might even be malware.

There is a site that is commonly used for this sort of text file, that whose name escapes me, but, in general the important part of the log will fit into a small number of source code boxes directly on the forum.

You are likely thinking of pastebin.com

The incoming call was audio only. Once it was connected, the caller attempted to add video, but Asterisk doesn’t allow video to be added to an existing call when the stream wasn’t there originally and rejected the stream.

There was a very similar question some time in the last week.

Thank you David, so the conclusion is that the android App Zoiper is not fully compatible with Asterisk (at least for the video) because it sends first an audio request properly accepted and then tries to send another request with audio and video. But this second request is refused by asterisk (by setting the video port to 0).

It seems to me that it does not come from a bad asterisk configuration?

Was someone ever able to have video call using asterisk and 2 Zoiper Softphone?

Hello everyone,

I update my post to let the future readers know about the solution I found.

After contacting Zoiper, it seems that it is not a question about a parameter in the app. It appears that the Zoiper app is not fully compatible with asterisk for the video (at least for now).

What you can do is try to change in Asterisk:
videosupport=yes
by
videosupport=always

It will improve a bit and sometimes you’ll get the video stream but just in one direction… (which is not acceptable).

The real solution I found is to use another app on android: “Linphone”.

However at this time the version on the playstore is the “3.3.1” and contains a bug when Linphone is the callee (the bug is that the call is dropped after 32 seconds exactly).

What I did to solve this issue is to install a previous version of the Linphone app. In my case the 3.2.7 where the bug is not present.

Now the video and the audio work flawlessly (on the same network) with Linphone 3.2.7 and asterisk 13 with videosupport=yes.