Video does not work until after returning from hold

I have a Grandstream GDS3710 (door phone) calling a Yealink SIP-T58A video phone. This is just a demonstration system so it’s running on a micro-pc mounted to a demo board. When I first loaded FreePBX onto the system it worked fine for a couple of days.

Video does not show when the call is answered. But if I place the call on hold and then return to the call, it works fine.

Here are the logs from FreePBX. The logs include the call from the GDS3710, answering on the T58A, placing the call on hold, and returning to the call. Let me know if additional information is required to assist me. I appreciate any and all efforts very much.

Connected to Asterisk 13.27.1 currently running on freepbx (pid = 9190)

== Using SIP VIDEO TOS bits 136

== Using SIP VIDEO CoS mark 6

== Using SIP RTP TOS bits 184

== Using SIP RTP CoS mark 5

– Executing [500@from-internal:1] GotoIf (" SIP/1000-0000001c ", " 1?ext-local,500,1:followme-check,500,1 ") in new stack

– Goto (ext-local,500,1)

– Executing [500@ext-local:1] Set (" SIP/1000-0000001c ", " __RINGTIMER=15 ") in new stack

– Executing [500@ext-local:2] Macro (" SIP/1000-0000001c ", " exten-vm,novm,500,0,0,0 ") in new stack

– Executing [s@macro-exten-vm:1] Macro (" SIP/1000-0000001c ", " user-callerid, ") in new stack

– Executing [s@macro-user-callerid:1] Set (" SIP/1000-0000001c ", " TOUCH_MONITOR=1570636676.28 ") in new stack

– Executing [s@macro-user-callerid:2] Set (" SIP/1000-0000001c ", " AMPUSER=1000 ") in new stack

– Executing [s@macro-user-callerid:3] GotoIf (" SIP/1000-0000001c ", " 0?report ") in new stack

– Executing [s@macro-user-callerid:4] ExecIf (" SIP/1000-0000001c ", " 1?Set(REALCALLERIDNUM=1000) ") in new stack

– Executing [s@macro-user-callerid:5] Set (" SIP/1000-0000001c ", " AMPUSER=1000 ") in new stack

– Executing [s@macro-user-callerid:6] GotoIf (" SIP/1000-0000001c ", " 0?limit ") in new stack

– Executing [s@macro-user-callerid:7] Set (" SIP/1000-0000001c ", " AMPUSERCIDNAME=Door Phone ") in new stack

– Executing [s@macro-user-callerid:8] ExecIf (" SIP/1000-0000001c ", " 0?Set(__CIDMASQUERADING=TRUE) ") in new stack

– Executing [s@macro-user-callerid:9] GotoIf (" SIP/1000-0000001c ", " 0?report ") in new stack

– Executing [s@macro-user-callerid:10] Set (" SIP/1000-0000001c ", " AMPUSERCID=1000 ") in new stack

– Executing [s@macro-user-callerid:11] Set (" SIP/1000-0000001c ", " __DIAL_OPTIONS=HhTtr ") in new stack

– Executing [s@macro-user-callerid:12] Set (" SIP/1000-0000001c ", " CALLERID(all)=β€œDoor Phone” <1000> ") in new stack

– Executing [s@macro-user-callerid:13] ExecIf (" SIP/1000-0000001c ", " 0?Set(CALLERID(all)=500) ") in new stack

– Executing [s@macro-user-callerid:14] GotoIf (" SIP/1000-0000001c ", " 0?limit ") in new stack

– Executing [s@macro-user-callerid:15] ExecIf (" SIP/1000-0000001c ", " 0?Set(GROUP(concurrency_limit)=1000) ") in new stack

– Executing [s@macro-user-callerid:16] ExecIf (" SIP/1000-0000001c ", " 0?Set(CHANNEL(language)=) ") in new stack

– Executing [s@macro-user-callerid:17] NoOp (" SIP/1000-0000001c ", " Macro Depth is 2 ") in new stack

– Executing [s@macro-user-callerid:18] GotoIf (" SIP/1000-0000001c ", " 1?report2:macroerror ") in new stack

– Goto (macro-user-callerid,s,19)

– Executing [s@macro-user-callerid:19] GotoIf (" SIP/1000-0000001c ", " 0?continue ") in new stack

– Executing [s@macro-user-callerid:20] ExecIf (" SIP/1000-0000001c ", " 1?Set(__CALLEE_ACCOUNCODE=) ") in new stack

– Executing [s@macro-user-callerid:21] Set (" SIP/1000-0000001c ", " __TTL=64 ") in new stack

– Executing [s@macro-user-callerid:22] GotoIf (" SIP/1000-0000001c ", " 1?continue ") in new stack

– Goto (macro-user-callerid,s,38)

– Executing [s@macro-user-callerid:38] Set (" SIP/1000-0000001c ", " CALLERID(number)=1000 ") in new stack

– Executing [s@macro-user-callerid:39] Set (" SIP/1000-0000001c ", " CALLERID(name)=Door Phone ") in new stack

– Executing [s@macro-user-callerid:40] GotoIf (" SIP/1000-0000001c ", " 0?cnum ") in new stack

– Executing [s@macro-user-callerid:41] Set (" SIP/1000-0000001c ", " CDR(cnam)=Door Phone ") in new stack

– Executing [s@macro-user-callerid:42] Set (" SIP/1000-0000001c ", " CDR(cnum)=1000 ") in new stack

– Executing [s@macro-user-callerid:43] Set (" SIP/1000-0000001c ", " CHANNEL(language)=en ") in new stack

– Executing [s@macro-exten-vm:2] Set (" SIP/1000-0000001c ", " RingGroupMethod=none ") in new stack

– Executing [s@macro-exten-vm:3] Set (" SIP/1000-0000001c ", " __EXTTOCALL=500 ") in new stack

– Executing [s@macro-exten-vm:4] Set (" SIP/1000-0000001c ", " __PICKUPMARK=500 ") in new stack

– Executing [s@macro-exten-vm:5] Set (" SIP/1000-0000001c ", " RT= ") in new stack

– Executing [s@macro-exten-vm:6] ExecIf (" SIP/1000-0000001c ", " 0?Macro(vm,novm,DIRECTDIAL,) ") in new stack

– Executing [s@macro-exten-vm:7] ExecIf (" SIP/1000-0000001c ", " 0?MacroExit() ") in new stack

– Executing [s@macro-exten-vm:8] ExecIf (" SIP/1000-0000001c ", " *0?Gosub(ext-intercom,80500,1()) ") in new stack

– Executing [s@macro-exten-vm:9] ExecIf (" SIP/1000-0000001c ", " 0?MacroExit() ") in new stack

– Executing [s@macro-exten-vm:10] ExecIf (" SIP/1000-0000001c ", " 0?ChanSpy(SIP/500,q) ") in new stack

– Executing [s@macro-exten-vm:11] ExecIf (" SIP/1000-0000001c ", " 0?MacroExit() ") in new stack

[2019-10-09 10:57:56] ERROR [16501][C-0000000e]: res_pjsip_header_funcs.c : 454 func_read_header : This function requires a PJSIP channel.

– Executing [s@macro-exten-vm:12] ExecIf (" SIP/1000-0000001c ", " 0?Macro(vm,novm,DIRECTDIAL,) ") in new stack

[2019-10-09 10:57:56] ERROR [16501][C-0000000e]: res_pjsip_header_funcs.c : 454 func_read_header : This function requires a PJSIP channel.

[2019-10-09 10:57:56] ERROR [16501][C-0000000e]: res_pjsip_header_funcs.c : 454 func_read_header : This function requires a PJSIP channel.

– Executing [s@macro-exten-vm:13] ExecIf (" SIP/1000-0000001c ", " 0?MacroExit() ") in new stack

[2019-10-09 10:57:56] ERROR [16501][C-0000000e]: res_pjsip_header_funcs.c : 454 func_read_header : This function requires a PJSIP channel.

[2019-10-09 10:57:56] ERROR [16501][C-0000000e]: res_pjsip_header_funcs.c : 454 func_read_header : This function requires a PJSIP channel.

– Executing [s@macro-exten-vm:14] ExecIf (" SIP/1000-0000001c ", " *0?Gosub(ext-intercom,80500,1()) ") in new stack

[2019-10-09 10:57:56] ERROR [16501][C-0000000e]: res_pjsip_header_funcs.c : 454 func_read_header : This function requires a PJSIP channel.

[2019-10-09 10:57:56] ERROR [16501][C-0000000e]: res_pjsip_header_funcs.c : 454 func_read_header : This function requires a PJSIP channel.

– Executing [s@macro-exten-vm:15] ExecIf (" SIP/1000-0000001c ", " 0?MacroExit() ") in new stack

[2019-10-09 10:57:56] ERROR [16501][C-0000000e]: res_pjsip_header_funcs.c : 454 func_read_header : This function requires a PJSIP channel.

[2019-10-09 10:57:56] ERROR [16501][C-0000000e]: res_pjsip_header_funcs.c : 454 func_read_header : This function requires a PJSIP channel.

– Executing [s@macro-exten-vm:16] ExecIf (" SIP/1000-0000001c ", " 0?ChanSpy(SIP/500,q) ") in new stack

[2019-10-09 10:57:56] ERROR [16501][C-0000000e]: res_pjsip_header_funcs.c : 454 func_read_header : This function requires a PJSIP channel.

[2019-10-09 10:57:56] ERROR [16501][C-0000000e]: res_pjsip_header_funcs.c : 454 func_read_header : This function requires a PJSIP channel.

– Executing [s@macro-exten-vm:17] ExecIf (" SIP/1000-0000001c ", " 0?MacroExit() ") in new stack

[2019-10-09 10:57:56] ERROR [16501][C-0000000e]: res_pjsip_header_funcs.c : 454 func_read_header : This function requires a PJSIP channel.

– Executing [s@macro-exten-vm:18] Gosub (" SIP/1000-0000001c ", " sub-record-check,s,1(exten,500,dontcare) ") in new stack

– Executing [s@sub-record-check:1] GotoIf (" SIP/1000-0000001c ", " 0?initialized ") in new stack

– Executing [s@sub-record-check:2] Set (" SIP/1000-0000001c ", " __REC_STATUS=INITIALIZED ") in new stack

– Executing [s@sub-record-check:3] Set (" SIP/1000-0000001c ", " NOW=1570636676 ") in new stack

– Executing [s@sub-record-check:4] Set (" SIP/1000-0000001c ", " __DAY=09 ") in new stack

– Executing [s@sub-record-check:5] Set (" SIP/1000-0000001c ", " __MONTH=10 ") in new stack

– Executing [s@sub-record-check:6] Set (" SIP/1000-0000001c ", " __YEAR=2019 ") in new stack

– Executing [s@sub-record-check:7] Set (" SIP/1000-0000001c ", " __TIMESTR=20191009-105756 ") in new stack

– Executing [s@sub-record-check:8] Set (" SIP/1000-0000001c ", " __FROMEXTEN=1000 ") in new stack

– Executing [s@sub-record-check:9] Set (" SIP/1000-0000001c ", " __MON_FMT=wav ") in new stack

– Executing [s@sub-record-check:10] NoOp (" SIP/1000-0000001c ", " Recordings initialized ") in new stack

– Executing [s@sub-record-check:11] ExecIf (" SIP/1000-0000001c ", " 0?Set(ARG3=dontcare) ") in new stack

– Executing [s@sub-record-check:12] Set (" SIP/1000-0000001c ", " REC_POLICY_MODE_SAVE= ") in new stack

– Executing [s@sub-record-check:13] ExecIf (" SIP/1000-0000001c ", " 0?Set(REC_STATUS=NO) ") in new stack

– Executing [s@sub-record-check:14] GotoIf (" SIP/1000-0000001c ", " 5?checkaction ") in new stack

– Goto (sub-record-check,s,17)

– Executing [s@sub-record-check:17] GotoIf (" SIP/1000-0000001c ", " 1?sub-record-check,exten,1 ") in new stack

– Goto (sub-record-check,exten,1)

– Executing [exten@sub-record-check:1] NoOp (" SIP/1000-0000001c ", " Exten Recording Check between 1000 and 500 ") in new stack

– Executing [exten@sub-record-check:2] Set (" SIP/1000-0000001c ", " CALLTYPE=internal ") in new stack

– Executing [exten@sub-record-check:3] ExecIf (" SIP/1000-0000001c ", " 0?Set(CALLTYPE=) ") in new stack

– Executing [exten@sub-record-check:4] Set (" SIP/1000-0000001c ", " CALLEE=dontcare ") in new stack

– Executing [exten@sub-record-check:5] ExecIf (" SIP/1000-0000001c ", " 0?Set(CALLEE=dontcare) ") in new stack

– Executing [exten@sub-record-check:6] GotoIf (" SIP/1000-0000001c ", " 0?callee ") in new stack

– Executing [exten@sub-record-check:7] GotoIf (" SIP/1000-0000001c ", " 1?caller ") in new stack

– Goto (sub-record-check,exten,13)

– Executing [exten@sub-record-check:13] Set (" SIP/1000-0000001c ", " RECMODE=dontcare ") in new stack

– Executing [exten@sub-record-check:14] ExecIf (" SIP/1000-0000001c ", " 0?Set(RECMODE=dontcare) ") in new stack

– Executing [exten@sub-record-check:15] ExecIf (" SIP/1000-0000001c ", " 1?Set(RECMODE=dontcare) ") in new stack

– Executing [exten@sub-record-check:16] Gosub (" SIP/1000-0000001c ", " recordcheck,1(dontcare,internal,500) ") in new stack

– Executing [recordcheck@sub-record-check:1] NoOp (" SIP/1000-0000001c ", " Starting recording check against dontcare ") in new stack

– Executing [recordcheck@sub-record-check:2] Goto (" SIP/1000-0000001c ", " dontcare ") in new stack

– Goto (sub-record-check,recordcheck,3)

– Executing [recordcheck@sub-record-check:3] Return (" SIP/1000-0000001c ", β€œβ€) in new stack

– Executing [exten@sub-record-check:17] Return (" SIP/1000-0000001c ", β€œβ€) in new stack

– Executing [s@macro-exten-vm:19] GotoIf (" SIP/1000-0000001c ", " 1?macrodial ") in new stack

– Goto (macro-exten-vm,s,25)

– Executing [s@macro-exten-vm:25] GosubIf (" SIP/1000-0000001c ", " 0?clrheader,1() ") in new stack

– Executing [s@macro-exten-vm:26] Macro (" SIP/1000-0000001c ", " dial-one,HhTtr,500 ") in new stack

– Executing [s@macro-dial-one:1] Set (" SIP/1000-0000001c ", " DEXTEN=500 ") in new stack

– Executing [s@macro-dial-one:2] Set (" SIP/1000-0000001c ", " __CRM_SOURCE=1000 ") in new stack

– Executing [s@macro-dial-one:3] ExecIf (" SIP/1000-0000001c ", " 0?Set(__EXTTOCALL=500) ") in new stack

– Executing [s@macro-dial-one:4] Set (" SIP/1000-0000001c ", " DIALSTATUS_CW= ") in new stack

– Executing [s@macro-dial-one:5] GosubIf (" SIP/1000-0000001c ", " 0?screen,1() ") in new stack

– Executing [s@macro-dial-one:6] GosubIf (" SIP/1000-0000001c ", " 0?cf,1() ") in new stack

– Executing [s@macro-dial-one:7] GotoIf (" SIP/1000-0000001c ", " 1?skip1 ") in new stack

– Goto (macro-dial-one,s,10)

– Executing [s@macro-dial-one:10] GotoIf (" SIP/1000-0000001c ", " 0?nodial ") in new stack

– Executing [s@macro-dial-one:11] GotoIf (" SIP/1000-0000001c ", " 0?continue ") in new stack

– Executing [s@macro-dial-one:12] Set (" SIP/1000-0000001c ", " EXTHASCW=ENABLED ") in new stack

– Executing [s@macro-dial-one:13] GotoIf (" SIP/1000-0000001c ", " 0?next1:cwinusebusy ") in new stack

– Goto (macro-dial-one,s,25)

– Executing [s@macro-dial-one:25] GotoIf (" SIP/1000-0000001c ", " 0?next3:continue ") in new stack

– Goto (macro-dial-one,s,27)

– Executing [s@macro-dial-one:27] GotoIf (" SIP/1000-0000001c ", " 0?nodial ") in new stack

– Executing [s@macro-dial-one:28] GosubIf (" SIP/1000-0000001c ", " 1?dstring,1():dlocal,1() ") in new stack

– Executing [dstring@macro-dial-one:1] Set (" SIP/1000-0000001c ", " DSTRING= ") in new stack

– Executing [dstring@macro-dial-one:2] Set (" SIP/1000-0000001c ", " DEVICES=500 ") in new stack

– Executing [dstring@macro-dial-one:3] ExecIf (" SIP/1000-0000001c ", " 0?Return() ") in new stack

– Executing [dstring@macro-dial-one:4] ExecIf (" SIP/1000-0000001c ", " 0?Set(DEVICES=00) ") in new stack

– Executing [dstring@macro-dial-one:5] Set (" SIP/1000-0000001c ", " LOOPCNT=1 ") in new stack

– Executing [dstring@macro-dial-one:6] Set (" SIP/1000-0000001c ", " ITER=1 ") in new stack

– Executing [dstring@macro-dial-one:7] Set (" SIP/1000-0000001c ", " THISDIAL=SIP/500 ") in new stack

– Executing [dstring@macro-dial-one:8] GosubIf (" SIP/1000-0000001c ", " 1?zap2dahdi,1() ") in new stack

– Executing [zap2dahdi@macro-dial-one:1] ExecIf (" SIP/1000-0000001c ", " 0?Return() ") in new stack

– Executing [zap2dahdi@macro-dial-one:2] Set (" SIP/1000-0000001c ", " NEWDIAL= ") in new stack

– Executing [zap2dahdi@macro-dial-one:3] Set (" SIP/1000-0000001c ", " LOOPCNT2=1 ") in new stack

– Executing [zap2dahdi@macro-dial-one:4] Set (" SIP/1000-0000001c ", " ITER2=1 ") in new stack

– Executing [zap2dahdi@macro-dial-one:5] Set (" SIP/1000-0000001c ", " THISPART2=SIP/500 ") in new stack

– Executing [zap2dahdi@macro-dial-one:6] ExecIf (" SIP/1000-0000001c ", " 0?Set(THISPART2=DAHDI/500) ") in new stack

– Executing [zap2dahdi@macro-dial-one:7] Set (" SIP/1000-0000001c ", " NEWDIAL=SIP/500& ") in new stack

– Executing [zap2dahdi@macro-dial-one:8] Set (" SIP/1000-0000001c ", " ITER2=2 ") in new stack

– Executing [zap2dahdi@macro-dial-one:9] GotoIf (" SIP/1000-0000001c ", " 0?begin2 ") in new stack

– Executing [zap2dahdi@macro-dial-one:10] Set (" SIP/1000-0000001c ", " THISDIAL=SIP/500 ") in new stack

– Executing [zap2dahdi@macro-dial-one:11] Return (" SIP/1000-0000001c ", β€œβ€) in new stack

– Executing [dstring@macro-dial-one:9] GotoIf (" SIP/1000-0000001c ", " 1?docheck ") in new stack

– Goto (macro-dial-one,dstring,15)

– Executing [dstring@macro-dial-one:15] GotoIf (" SIP/1000-0000001c ", " 0?skipset ") in new stack

– Executing [dstring@macro-dial-one:16] Set (" SIP/1000-0000001c ", " DSTRING=SIP/500& ") in new stack

– Executing [dstring@macro-dial-one:17] Set (" SIP/1000-0000001c ", " ITER=2 ") in new stack

– Executing [dstring@macro-dial-one:18] GotoIf (" SIP/1000-0000001c ", " 0?begin ") in new stack

– Executing [dstring@macro-dial-one:19] ExecIf (" SIP/1000-0000001c ", " 0?Return() ") in new stack

– Executing [dstring@macro-dial-one:20] Set (" SIP/1000-0000001c ", " DSTRING=SIP/500 ") in new stack

– Executing [dstring@macro-dial-one:21] Return (" SIP/1000-0000001c ", β€œβ€) in new stack

– Executing [s@macro-dial-one:29] GotoIf (" SIP/1000-0000001c ", " 0?nodial ") in new stack

– Executing [s@macro-dial-one:30] GotoIf (" SIP/1000-0000001c ", " 0?skiptrace ") in new stack

– Executing [s@macro-dial-one:31] GosubIf (" SIP/1000-0000001c ", " 1?ctset,1():ctclear,1() ") in new stack

– Executing [ctset@macro-dial-one:1] Set (" SIP/1000-0000001c ", " DB(CALLTRACE/500)=1000 ") in new stack

– Executing [ctset@macro-dial-one:2] Return (" SIP/1000-0000001c ", β€œβ€) in new stack

– Executing [s@macro-dial-one:32] Set (" SIP/1000-0000001c ", " D_OPTIONS=HhTtr ") in new stack

– Executing [s@macro-dial-one:33] GosubIf (" SIP/1000-0000001c ", " 0?func-set-sipheader,s,1(Alert-Info,) ") in new stack

– Executing [s@macro-dial-one:34] NoOp (" SIP/1000-0000001c ", " Blind Transfer: , Attended Transfer: , User: 1000, Alert Info: ") in new stack

– Executing [s@macro-dial-one:35] ExecIf (" SIP/1000-0000001c ", " 1?Set(ALERT_INFO=) ") in new stack

– Executing [s@macro-dial-one:36] ExecIf (" SIP/1000-0000001c ", " 0?Set(ALERT_INFO=) ") in new stack

– Executing [s@macro-dial-one:37] ExecIf (" SIP/1000-0000001c ", " 0?Set(ALERT_INFO=) ") in new stack

– Executing [s@macro-dial-one:38] ExecIf (" SIP/1000-0000001c ", " 0?Set(ALERT_INFO=Normal;volume=) ") in new stack

– Executing [s@macro-dial-one:39] ExecIf (" SIP/1000-0000001c ", " 0?Set(ALERT_INFO=Normal;volume=) ") in new stack

– Executing [s@macro-dial-one:40] GosubIf (" SIP/1000-0000001c ", " 0?func-set-sipheader,s,1(Alert-Info,) ") in new stack

– Executing [s@macro-dial-one:41] ExecIf (" SIP/1000-0000001c ", " 0?Set(CHANNEL(musicclass)=) ") in new stack

– Executing [s@macro-dial-one:42] GosubIf (" SIP/1000-0000001c ", " 0?qwait,1() ") in new stack

– Executing [s@macro-dial-one:43] Set (" SIP/1000-0000001c ", " __CWIGNORE= ") in new stack

– Executing [s@macro-dial-one:44] Set (" SIP/1000-0000001c ", " __KEEPCID=TRUE ") in new stack

– Executing [s@macro-dial-one:45] GotoIf (" SIP/1000-0000001c ", " 0?usegoto,1 ") in new stack

– Executing [s@macro-dial-one:46] GotoIf (" SIP/1000-0000001c ", " 0?godial ") in new stack

– Executing [s@macro-dial-one:47] Gosub (" SIP/1000-0000001c ", " sub-presencestate-display,s,1(500) ") in new stack

– Executing [s@sub-presencestate-display:1] Goto (" SIP/1000-0000001c ", " state-available,1 ") in new stack

– Goto (sub-presencestate-display,state-available,1)

– Executing [state-available@sub-presencestate-display:1] Set (" SIP/1000-0000001c ", " PRESENCESTATE_DISPLAY=(Available) ") in new stack

– Executing [state-available@sub-presencestate-display:2] Return (" SIP/1000-0000001c ", β€œβ€) in new stack

– Executing [s@macro-dial-one:48] Set (" SIP/1000-0000001c ", " CONNECTEDLINE(name,i)=Video Phone(Available) ") in new stack

– Executing [s@macro-dial-one:49] Set (" SIP/1000-0000001c ", " CONNECTEDLINE(num)=500 ") in new stack

– Executing [s@macro-dial-one:50] Set (" SIP/1000-0000001c ", " D_OPTIONS=HhTtrI ") in new stack

– Executing [s@macro-dial-one:51] Macro (" SIP/1000-0000001c ", " dialout-one-predial-hook, ") in new stack

– Executing [s@macro-dialout-one-predial-hook:1] MacroExit (" SIP/1000-0000001c ", β€œβ€) in new stack

– Executing [s@macro-dial-one:52] ExecIf (" SIP/1000-0000001c ", " 0?Set(D_OPTIONS=HhtrII) ") in new stack

– Executing [s@macro-dial-one:53] NoOp (" SIP/1000-0000001c ", β€œβ€) in new stack

– Executing [s@macro-dial-one:54] ExecIf (" SIP/1000-0000001c ", " 0?Set(D_OPTIONS=HhTtrIg) ") in new stack

– Executing [s@macro-dial-one:55] Dial (" SIP/1000-0000001c ", " SIP/500,HhTtrIb(func-apply-sipheaders^s^1) ") in new stack

== Using SIP VIDEO TOS bits 136

== Using SIP VIDEO CoS mark 6

== Using SIP RTP TOS bits 184

== Using SIP RTP CoS mark 5

– SIP/500-0000001d Internal Gosub(func-apply-sipheaders,s,1) start

– Executing [s@func-apply-sipheaders:1] ExecIf (" SIP/500-0000001d ", " 0?Set(CHANNEL(hangup_handler_push)=crm-hangup,s,1) ") in new stack

– Executing [s@func-apply-sipheaders:2] NoOp (" SIP/500-0000001d ", " Applying SIP Headers to channel SIP/500-0000001d ") in new stack

– Executing [s@func-apply-sipheaders:3] Set (" SIP/500-0000001d ", " TECH=SIP ") in new stack

– Executing [s@func-apply-sipheaders:4] Set (" SIP/500-0000001d ", " SIPHEADERKEYS= ") in new stack

– Executing [s@func-apply-sipheaders:5] While (" SIP/500-0000001d ", " 0 ") in new stack

– Jumping to priority 13

– Executing [s@func-apply-sipheaders:14] Return (" SIP/500-0000001d ", β€œβ€) in new stack

== Spawn extension (from-internal, 500, 1) exited non-zero on β€˜SIP/500-0000001d’

– SIP/500-0000001d Internal Gosub(func-apply-sipheaders,s,1) complete GOSUB_RETVAL=

– Called SIP/500

– Connected line update to SIP/1000-0000001c prevented.

– SIP/500-0000001d is ringing

– Connected line update to SIP/1000-0000001c prevented.

– SIP/500-0000001d answered SIP/1000-0000001c

– Channel SIP/500-0000001d joined β€˜simple_bridge’ basic-bridge <b4f67ebb-0e5e-4d02-b5dc-c8c213cf85bd>

– Channel SIP/1000-0000001c joined β€˜simple_bridge’ basic-bridge <b4f67ebb-0e5e-4d02-b5dc-c8c213cf85bd>

[2019-10-09 10:58:02] WARNING [10010][C-0000000e]: res_format_attr_siren14.c : 54 siren14_parse_sdp_fmtp : Got siren14 offer at 32000 bps, but only 48000 bps supported; ignoring.

[2019-10-09 10:58:02] WARNING [10010][C-0000000e]: res_format_attr_siren14.c : 54 siren14_parse_sdp_fmtp : Got siren14 offer at 24000 bps, but only 48000 bps supported; ignoring.

[2019-10-09 10:58:02] WARNING [10010][C-0000000e]: res_format_attr_siren7.c : 54 siren7_parse_sdp_fmtp : Got Siren7 offer at 24000 bps, but only 32000 bps supported; ignoring.

– Started music on hold, class β€˜default’, on channel β€˜SIP/1000-0000001c’

[2019-10-09 10:58:04] WARNING [10010][C-0000000e]: res_format_attr_siren14.c : 54 siren14_parse_sdp_fmtp : Got siren14 offer at 32000 bps, but only 48000 bps supported; ignoring.

[2019-10-09 10:58:04] WARNING [10010][C-0000000e]: res_format_attr_siren14.c : 54 siren14_parse_sdp_fmtp : Got siren14 offer at 24000 bps, but only 48000 bps supported; ignoring.

[2019-10-09 10:58:04] WARNING [10010][C-0000000e]: res_format_attr_siren7.c : 54 siren7_parse_sdp_fmtp : Got Siren7 offer at 24000 bps, but only 32000 bps supported; ignoring.

– Stopped music on hold on SIP/1000-0000001c

– Channel SIP/500-0000001d left β€˜simple_bridge’ basic-bridge <b4f67ebb-0e5e-4d02-b5dc-c8c213cf85bd>

– Channel SIP/1000-0000001c left β€˜simple_bridge’ basic-bridge <b4f67ebb-0e5e-4d02-b5dc-c8c213cf85bd>

== Spawn extension (macro-dial-one, s, 55) exited non-zero on β€˜SIP/1000-0000001c’ in macro β€˜dial-one’

== Spawn extension (macro-exten-vm, s, 26) exited non-zero on β€˜SIP/1000-0000001c’ in macro β€˜exten-vm’

== Spawn extension (ext-local, 500, 2) exited non-zero on β€˜SIP/1000-0000001c’

– Executing [h@ext-local:1] Macro (" SIP/1000-0000001c ", " hangupcall, ") in new stack

– Executing [s@macro-hangupcall:1] GotoIf (" SIP/1000-0000001c ", " 1?theend ") in new stack

– Goto (macro-hangupcall,s,3)

– Executing [s@macro-hangupcall:3] ExecIf (" SIP/1000-0000001c ", " 0?Set(CDR(recordingfile)=) ") in new stack

– Executing [s@macro-hangupcall:4] NoOp (" SIP/1000-0000001c ", " SIP/500-0000001d montior file= ") in new stack

– Executing [s@macro-hangupcall:5] GotoIf (" SIP/1000-0000001c ", " 1?skipagi ") in new stack

– Goto (macro-hangupcall,s,7)

– Executing [s@macro-hangupcall:7] Hangup (" SIP/1000-0000001c ", β€œβ€) in new stack

== Spawn extension (macro-hangupcall, s, 7) exited non-zero on β€˜SIP/1000-0000001c’ in macro β€˜hangupcall’

== Spawn extension (ext-local, h, 1) exited non-zero on β€˜SIP/1000-0000001c’

freepbx*CLI>

If I was a betting man, I’d start with the Video Codec settings on the phone. If you can control the door unit’s Codec, start with eliminating the siren14 codec and see what happens.

I can’t find any reference in the GDS3710 to the siren14 codec so I added it to the disallowed codec list on both extensions in FreePBX. Didn’t make any difference.

What video codecs do you have enabled on the PBX and endpoints? What video codecs are enabled on the actual door device? Tip 1: Make sure they have the same ones selected. Deselect any that don’t match the PBX from the device (or vice versa)

1 Like

I also remember a situation where the door device was choosing an Audio codec to start and reconfiguring to a video codec later. Might be a similar situation.

I agree with @BlazeStudios but would go one step further. On each endpoint, enable only one audio and one video codec that they have in common, e.g. ulaw (called PCMU on the Yealink) and h264.

I tried what you suggested; the T58A is placing the call (ext 500) and it is now restricted to PCMU for audio and H264 for video. FreePBX has ext with allowed codecs of ulaw&h264. The GDS3710 (ext 1000) is set to h264 for video and PCMU for audio. Still behaves the same.

But I have another server (this one is a VM in the cloud) that I can switch both devices to and it works fine. At least I could. I tried it again just now and it connects and brings up a video window that is just black. The audio works. Something I’ve changed on the 2 endpoints has now messed up even this.

I have a few production systems in place with this setup so I compared settings on both the T58A and the GDS3710 to one of those, changed everything on the demo board so they’re the same, and now they work perfectly with my cloud server. But the local server still won’t show video until after returning from hold.

So it would seem there is either a difference in the cloud server and the local server or the fact that one is local and one is in the cloud is what is causing the difference in behavior.

And don’t forget that the local server worked for a couple of days and then mysteriously stopped working. Pretty sure I didn’t change anything. And pretty sure if I reload FreePBX from scratch that it will work for a couple of days.

I should also mention that even though both endpoints are chan_sip that the cloud is listening on 5060 and the local on 5160. Doesn’t seem relevant to me but then I’ve already demonstrated that I don’t know what is causing this, so…

Thanks for your help so far. Any and all ideas welcome!

When I call the door phone from the video phone, the video works immediately. (It’s set to auto-answer). Help!

If anyone is following this crazy thread, I slapped a band-aid on the problem by reloading FreePBX onto the tiny PC and not patching it. Pretty sure it would work after I patched it, at least for a couple of days, but I’m going to give this a try. It’s just a demo board so it doesn’t even have a firewall running and doesn’t need the updates. But I hope someone reads this in the future and can give me a hint as to what’s going on.

One last bit of trivia.

On the Chan-SCCP-B driver (which is about as unrelated as you can get), we would sometimes have a problem where you would place a call on hold (or do a transfer) and get one-way audio on the phone on the way out. Turns out the phone system would change the audio codec on the connection from whatever was negotiated to the codec associated with the on-hold music, and then didn’t switch back with coming off of hold.

Note that this isn’t your problem, or even a suggestion of a solution, or even related to the SIP driver you are using. It’s simply the only time I can think of where something like this happened predictably.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.