FreePBX with Dahua VTO + 2x VTH

I am using a rather new Version of asterisk so PJSIP is the only option as trunk
Managed to get the trunk 9901#2 show as online in VTO but does not seem Available in Freepbx

Any idea?
 
I am using a rather new Version of asterisk so PJSIP is the only option as trunk
Managed to get the trunk 9901#2 show as online in VTO but does not seem Available in Freepbx

Any idea?
As stated, without a tcpdump or at least some sip logfiles its hard to say whats wrong.
 
We have some progress, Freepbx trunk is now registered.
9901#2/sip:172.16.77.20 9901#2 Registered (exp. 16s)

I also see it Online in the VTO.
My issue now is how to route the calls in Freepbx
I have 2 inbound routes one from 9901 and one from 8001 with destination a ring group with several ip phones but no call comes in when pressing button on Doorphone

below the logs

-- Executing [9901#2@from-internal:1] ResetCDR("PJSIP/9901#2-00000020", "") in new stack
-- Executing [9901#2@from-internal:2] Set("PJSIP/9901#2-00000020", "CDR_PROP(disable)=true") in new stack
-- Executing [9901#2@from-internal:3] Progress("PJSIP/9901#2-00000020", "") in new stack
0x7fc47c29aae0 -- Strict RTP learning after remote address set to: 172.16.77.20:20002
-- Executing [9901#2@from-internal:4] Wait("PJSIP/9901#2-00000020", "1") in new stack
-- Executing [9901#2@from-internal:5] Playback("PJSIP/9901#2-00000020", "silence/1&cannot-complete-as-dialed&check-number-dial-again,noanswer") in new stack
-- <PJSIP/9901#2-00000020> Playing 'silence/1.gsm' (language 'en')
-- <PJSIP/9901#2-00000020> Playing 'cannot-complete-as-dialed.gsm' (language 'en')
-- <PJSIP/9901#2-00000020> Playing 'check-number-dial-again.gsm' (language 'en')
-- Executing [9901#2@from-internal:6] Wait("PJSIP/9901#2-00000020", "1") in new stack
-- Executing [9901#2@from-internal:7] Congestion("PJSIP/9901#2-00000020", "20") in new stack
== Spawn extension (from-internal, 9901#2, 7) exited non-zero on 'PJSIP/9901#2-00000020'
-- Executing [h@from-internal:1] Gosub("PJSIP/9901#2-00000020", "macro-hangupcall,s,1") in new stack
-- Executing [s@macro-hangupcall:1] Set("PJSIP/9901#2-00000020", "__MCVMSTATUS=") in new stack
-- Executing [s@macro-hangupcall:2] Gosub("PJSIP/9901#2-00000020", "app-missedcall-hangup,s,1()") in new stack
-- Executing [s@app-missedcall-hangup:1] NoOp("PJSIP/9901#2-00000020", "Dialed: s") in new stack
-- Executing [s@app-missedcall-hangup:2] NoOp("PJSIP/9901#2-00000020", "Caller: ") in new stack
-- Executing [s@app-missedcall-hangup:3] GotoIf("PJSIP/9901#2-00000020", "0?exit") in new stack
-- Executing [s@app-missedcall-hangup:4] Set("PJSIP/9901#2-00000020", "EXTENNUM=s") in new stack
-- Executing [s@app-missedcall-hangup:5] Set("PJSIP/9901#2-00000020", "FEXTENNUM=s") in new stack
-- Executing [s@app-missedcall-hangup:6] GotoIf("PJSIP/9901#2-00000020", "0?exit") in new stack
-- Executing [s@app-missedcall-hangup:7] AGI("PJSIP/9901#2-00000020", "agi:/127.0.0.1/missedcallnotify.php,s,,s,0,,PJSIP/9901#2-00000020,,,,") in new stack
-- <PJSIP/9901#2-00000020>AGI Script agi:/127.0.0.1/missedcallnotify.php completed, returning 0
-- Executing [s@app-missedcall-hangup:8] Return("PJSIP/9901#2-00000020", "") in new stack
-- Executing [s@macro-hangupcall:3] UserEvent("PJSIP/9901#2-00000020", "MES,RTPAUDIOQOSMESBRIDGED:,RTPAUDIOQOSMES: minrxmes=087.231481; maxrxmes=087.231481; avgrxmes=087.231481; stdevrxmes=000.000000; mintxmes=000.000000; maxtxmes=000.000000; avgtxmes=000.000000; stdevtxmes=000.000000;") in new stack
-- Executing [s@macro-hangupcall:4] GotoIf("PJSIP/9901#2-00000020", "1?theend") in new stack
-- Goto (macro-hangupcall,s,6)
-- Executing [s@macro-hangupcall:6] ExecIf("PJSIP/9901#2-00000020", "0?Set(CDR(recordingfile)=)") in new stack
-- Executing [s@macro-hangupcall:7] Hangup("PJSIP/9901#2-00000020", "") in new stack
== Spawn extension (macro-hangupcall, s, 7) exited non-zero on 'PJSIP/9901#2-00000020'
 
You have to treat sip calls to 9901#2 accordingly in your freepbx. This is not a general dahua issue so I suggest to ask that in a freepbx forum.