Hi @david551 or @jcolp , can you help me out one more time?
I have below dialplan configured, its for a doorbell purpose … its a SIP doorbell without a camera… So what i have done, virtual extension 7000 is a console extension (linphoneC) with auto answer enabled and using a /dev/video0 v4ltloopback device for video… (injecting rtsp)
So when doorintercom is ringing, i invite user 6000 and 6001 to the conference bridge…
Also created a while loop to wait for 60 seconds, if no one answers, the call is finished
If 6000 or 6001 answers before the 60 seconds, extension 7000 (video user) is also joining the confbridge as a marked user, only to see the video… (video_mode=first_marked)
Working great!
But i want to improve it, because now i can only see video when i answer… i want to see video before answer (early media), thats indeed possible when i add the progress() app… i have done testing when i call from extension to extension , and i see early video (183 session)
Can i also do it with changing dialplan below? Its also verry important that the doorintercom stays ringing, it may NOT joined a confbridge before someone answers, thats why i have that while loop…
I was thinking like => doorintercom calls => and then the virtual extension 7000 (command line call) makes the call to 6000 / 6001 , if 6000 / 6001 answers, the doorintercom joins the confbridge together with 7000
Or maybe another way, is there a way i can specify a /dev/video device in asterisk itself?? thats maybe easier? Is that possible somehow in the extensions settings?? maybe in the extension itself from the doorintercom user?
exten => s,1,NoOp()
same => n,Originate(Local/6000@default,exten,default,600,1,,aC(ulaw,alaw,h264)n(Doorbell))
same => n,Originate(Local/6001@default,exten,default,601,1,,aC(ulaw,alaw,h264)n(Doorbell))
same => n,Set(i=1)
same => n,While($[${i} < 60])
same => n,NoOp(Confbridge number of participants : ${CONFBRIDGE_INFO(parties,1)})
same => n,GotoIf($["${CONFBRIDGE_INFO(parties,1)}" >= "1"]?startconf)
same => n,Wait(1)
same => n,Set(i=$[${i} + 1]
same => n,EndWhile()
same => n,Hangup()
same => n(startconf),ConfBridge(1,myconferenceroom,default_user)
exten => 600,1,NoOp()
same => n,Originate(PJSIP/7000,exten,default,700,1,,aC(ulaw,alaw,h264))
same => n,ConfBridge(1,myconferenceroom,admin_user)
exten => 601,1,NoOp()
same => n,Originate(PJSIP/7000,exten,default,700,1,,aC(ulaw,alaw,h264))
same => n,ConfBridge(1,myconferenceroom,admin_user)
exten => 700,1,NoOp()
same => n,ConfBridge(1,myconferenceroom,marked_user)